From 1389e1211e59821c238bd4b763586a75ee38d571 Mon Sep 17 00:00:00 2001 From: Jimmy Royer Date: Wed, 4 Sep 2024 17:15:58 -0400 Subject: [PATCH] Formatting --- .devcontainer/devcontainer.json | 2 +- .github/PULL_REQUEST_TEMPLATE.md | 4 +- act/event.json | 16 +- dist/index.js | 61883 +++++++++++++++++------------ dist/sourcemap-register.js | 2352 +- renovate.json | 8 +- src/main.ts | 24 +- 7 files changed, 38442 insertions(+), 25847 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index cfce3d1..b1cccd7 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -10,4 +10,4 @@ // "ghcr.io/jungaretti/features/ripgrep:1": {}, // "ghcr.io/lukewiwa/features/shellcheck:0": {}, } -} \ No newline at end of file +} diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 7ea3027..6b40352 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,7 +1,5 @@ - # Summary | Résumé - > 1-3 sentence description of the changed you're proposing, including a link to > a GitHub Issue # or Trello card if applicable. @@ -25,4 +23,4 @@ > modification. Elles aideront les développeurs à faire des tests sans avoir à > jouer au détective. Veuillez aussi inclure toutes les étapes de configuration > de l’environnement qui ne font pas partie des étapes normales dans le fichier -> README et tout élément temporel requis. \ No newline at end of file +> README et tout élément temporel requis. diff --git a/act/event.json b/act/event.json index 6ba6bd3..74ba848 100644 --- a/act/event.json +++ b/act/event.json @@ -1,10 +1,10 @@ { - "action": "opened", - "repository": { - "owner": { - "login": "cds-snc" - }, - "name": "cds-ai-codereviewer" + "action": "opened", + "repository": { + "owner": { + "login": "cds-snc" }, - "number": 3 -} \ No newline at end of file + "name": "cds-ai-codereviewer" + }, + "number": 3 +} diff --git a/dist/index.js b/dist/index.js index 2a161e6..cc68590 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,130 +1,193 @@ -require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ +require("./sourcemap-register.js"); +/******/ (() => { + // webpackBootstrap + /******/ var __webpack_modules__ = { + /***/ 3109: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; -/***/ 3109: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && 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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const fs_1 = __nccwpck_require__(7147); -const core = __importStar(__nccwpck_require__(2186)); -const openai_1 = __importDefault(__nccwpck_require__(47)); -const rest_1 = __nccwpck_require__(5375); -const parse_diff_1 = __importDefault(__nccwpck_require__(4833)); -const minimatch_1 = __importDefault(__nccwpck_require__(2002)); -const GITHUB_TOKEN = core.getInput("GITHUB_TOKEN"); -const OPENAI_API_KEY = core.getInput("OPENAI_API_KEY"); -const OPENAI_API_MODEL = core.getInput("OPENAI_API_MODEL"); -const OPENAI_API_VERSION = core.getInput("OPENAI_API_VERSION"); -const OPENAI_BASE_URL = core.getInput("OPENAI_BASE_URL"); // Keep the default value as undefined instead of empty strings. -// Supports HTTP requests debugging via an environment variable. -const debugHttp = process.env.DEBUG_HTTP; -if (debugHttp) { - // Intercept all HTTP requests - const nock = __nccwpck_require__(8437); - nock.recorder.rec({ - output_objects: true, - logging: (content) => { - console.log('HTTP Request:', content); - } - }); - console.log("HTTP calls interception enabled"); -} -const octokit = new rest_1.Octokit({ auth: GITHUB_TOKEN }); -const openai = new openai_1.default({ - apiKey: OPENAI_API_KEY, - baseURL: OPENAI_BASE_URL, - defaultQuery: { "api-version": OPENAI_API_VERSION }, - defaultHeaders: { "api-key": OPENAI_API_KEY }, -}); -function getPRDetails() { - var _a, _b; - return __awaiter(this, void 0, void 0, function* () { - const { repository, number } = JSON.parse((0, fs_1.readFileSync)(process.env.GITHUB_EVENT_PATH || "", "utf8")); - const prResponse = yield octokit.pulls.get({ - owner: repository.owner.login, - repo: repository.name, - pull_number: number, - }); - return { - owner: repository.owner.login, - repo: repository.name, - pull_number: number, - title: (_a = prResponse.data.title) !== null && _a !== void 0 ? _a : "", - description: (_b = prResponse.data.body) !== null && _b !== void 0 ? _b : "", + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) + for (var k in mod) + if ( + k !== "default" && + Object.prototype.hasOwnProperty.call(mod, k) + ) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; }; - }); -} -function getDiff(owner, repo, pull_number) { - return __awaiter(this, void 0, void 0, function* () { - const response = yield octokit.pulls.get({ + 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() + ); + }); + }; + var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + const fs_1 = __nccwpck_require__(7147); + const core = __importStar(__nccwpck_require__(2186)); + const openai_1 = __importDefault(__nccwpck_require__(47)); + const rest_1 = __nccwpck_require__(5375); + const parse_diff_1 = __importDefault(__nccwpck_require__(4833)); + const minimatch_1 = __importDefault(__nccwpck_require__(2002)); + const GITHUB_TOKEN = core.getInput("GITHUB_TOKEN"); + const OPENAI_API_KEY = core.getInput("OPENAI_API_KEY"); + const OPENAI_API_MODEL = core.getInput("OPENAI_API_MODEL"); + const OPENAI_API_VERSION = core.getInput("OPENAI_API_VERSION"); + const OPENAI_BASE_URL = core.getInput("OPENAI_BASE_URL"); // Keep the default value as undefined instead of empty strings. + // Supports HTTP requests debugging via an environment variable. + const debugHttp = process.env.DEBUG_HTTP; + if (debugHttp) { + // Intercept all HTTP requests + const nock = __nccwpck_require__(8437); + nock.recorder.rec({ + output_objects: true, + logging: (content) => { + console.log("HTTP Request:", content); + }, + }); + console.log("HTTP calls interception enabled"); + } + const octokit = new rest_1.Octokit({ auth: GITHUB_TOKEN }); + const openai = new openai_1.default({ + apiKey: OPENAI_API_KEY, + baseURL: OPENAI_BASE_URL, + defaultQuery: { "api-version": OPENAI_API_VERSION }, + defaultHeaders: { "api-key": OPENAI_API_KEY }, + }); + function getPRDetails() { + var _a, _b; + return __awaiter(this, void 0, void 0, function* () { + const { repository, number } = JSON.parse( + (0, fs_1.readFileSync)(process.env.GITHUB_EVENT_PATH || "", "utf8") + ); + const prResponse = yield octokit.pulls.get({ + owner: repository.owner.login, + repo: repository.name, + pull_number: number, + }); + return { + owner: repository.owner.login, + repo: repository.name, + pull_number: number, + title: + (_a = prResponse.data.title) !== null && _a !== void 0 ? _a : "", + description: + (_b = prResponse.data.body) !== null && _b !== void 0 ? _b : "", + }; + }); + } + function getDiff(owner, repo, pull_number) { + return __awaiter(this, void 0, void 0, function* () { + const response = yield octokit.pulls.get({ owner, repo, pull_number, mediaType: { format: "diff" }, + }); + // @ts-expect-error - response.data is a string + return response.data; }); - // @ts-expect-error - response.data is a string - return response.data; - }); -} -function analyzeCode(parsedDiff, prDetails) { - return __awaiter(this, void 0, void 0, function* () { - const comments = []; - for (const file of parsedDiff) { - if (file.to === "/dev/null") - continue; // Ignore deleted files + } + function analyzeCode(parsedDiff, prDetails) { + return __awaiter(this, void 0, void 0, function* () { + const comments = []; + for (const file of parsedDiff) { + if (file.to === "/dev/null") continue; // Ignore deleted files for (const chunk of file.chunks) { - const prompt = createPrompt(file, chunk, prDetails); - const aiResponse = yield getAIResponse(prompt); - if (aiResponse) { - const newComments = createComment(file, chunk, aiResponse); - if (newComments) { - comments.push(...newComments); - } + const prompt = createPrompt(file, chunk, prDetails); + const aiResponse = yield getAIResponse(prompt); + if (aiResponse) { + const newComments = createComment(file, chunk, aiResponse); + if (newComments) { + comments.push(...newComments); } + } } - } - return comments; - }); -} -function createPrompt(file, chunk, prDetails) { - return `Your task is to review pull requests. Instructions: + } + return comments; + }); + } + function createPrompt(file, chunk, prDetails) { + return `Your task is to review pull requests. Instructions: - Provide the response in following JSON format: {"reviews": [{"lineNumber": , "reviewComment": ""}]} - Do not give positive comments or compliments. - Provide comments and suggestions ONLY if there is something to improve, otherwise "reviews" should be an empty array. @@ -132,7 +195,9 @@ function createPrompt(file, chunk, prDetails) { - Use the given description only for the overall context and only comment the code. - IMPORTANT: NEVER suggest adding comments to the code. -Review the following code diff in the file "${file.to}" and take the pull request title and description into account when writing the response. +Review the following code diff in the file "${ + file.to + }" and take the pull request title and description into account when writing the response. Pull request title: ${prDetails.title} Pull request description: @@ -146,105 +211,138 @@ Git diff to review: \`\`\`diff ${chunk.content} ${chunk.changes - // @ts-expect-error - ln and ln2 exists where needed - .map((c) => `${c.ln ? c.ln : c.ln2} ${c.content}`) - .join("\n")} + // @ts-expect-error - ln and ln2 exists where needed + .map((c) => `${c.ln ? c.ln : c.ln2} ${c.content}`) + .join("\n")} \`\`\` `; -} -function getAIResponse(prompt) { - var _a, _b; - return __awaiter(this, void 0, void 0, function* () { - const queryConfig = { + } + function getAIResponse(prompt) { + var _a, _b; + return __awaiter(this, void 0, void 0, function* () { + const queryConfig = { model: OPENAI_API_MODEL, temperature: 0.2, max_tokens: 700, top_p: 1, frequency_penalty: 0, presence_penalty: 0, - }; - try { - const response = yield openai.chat.completions.create(Object.assign(Object.assign(Object.assign({}, queryConfig), (OPENAI_API_MODEL === "gpt-4-1106-preview" || OPENAI_API_MODEL === "gpt-4o" - ? { response_format: { type: "json_object" } } - : {})), { messages: [ + }; + try { + const response = yield openai.chat.completions.create( + Object.assign( + Object.assign( + Object.assign({}, queryConfig), + OPENAI_API_MODEL === "gpt-4-1106-preview" || + OPENAI_API_MODEL === "gpt-4o" + ? { response_format: { type: "json_object" } } + : {} + ), + { + messages: [ { - role: "system", - content: prompt, + role: "system", + content: prompt, }, - ] })); - const res = ((_b = (_a = response.choices[0].message) === null || _a === void 0 ? void 0 : _a.content) === null || _b === void 0 ? void 0 : _b.trim()) || "{}"; + ], + } + ) + ); + const res = + ((_b = + (_a = response.choices[0].message) === null || _a === void 0 + ? void 0 + : _a.content) === null || _b === void 0 + ? void 0 + : _b.trim()) || "{}"; return JSON.parse(res).reviews; - } - catch (error) { + } catch (error) { console.error("Error:", error); return null; - } - }); -} -function createComment(file, chunk, aiResponses) { - return aiResponses.flatMap((aiResponse) => { - if (!file.to) { + } + }); + } + function createComment(file, chunk, aiResponses) { + return aiResponses.flatMap((aiResponse) => { + if (!file.to) { return []; - } - return { + } + return { body: aiResponse.reviewComment, path: file.to, line: Number(aiResponse.lineNumber), - }; - }); -} -function createReviewComment(owner, repo, pull_number, comments) { - return __awaiter(this, void 0, void 0, function* () { - yield octokit.pulls.createReview({ + }; + }); + } + function createReviewComment(owner, repo, pull_number, comments) { + return __awaiter(this, void 0, void 0, function* () { + yield octokit.pulls.createReview({ owner, repo, pull_number, comments, event: "COMMENT", + }); }); - }); -} -function main() { - var _a; - return __awaiter(this, void 0, void 0, function* () { - const prDetails = yield getPRDetails(); - let diff; - const eventData = JSON.parse((0, fs_1.readFileSync)((_a = process.env.GITHUB_EVENT_PATH) !== null && _a !== void 0 ? _a : "", "utf8")); - if (eventData.action === "opened") { - diff = yield getDiff(prDetails.owner, prDetails.repo, prDetails.pull_number); - } - else if (eventData.action === "synchronize") { + } + function main() { + var _a; + return __awaiter(this, void 0, void 0, function* () { + const prDetails = yield getPRDetails(); + let diff; + const eventData = JSON.parse( + (0, fs_1.readFileSync)( + (_a = process.env.GITHUB_EVENT_PATH) !== null && _a !== void 0 + ? _a + : "", + "utf8" + ) + ); + if (eventData.action === "opened") { + diff = yield getDiff( + prDetails.owner, + prDetails.repo, + prDetails.pull_number + ); + } else if (eventData.action === "synchronize") { const newBaseSha = eventData.before; const newHeadSha = eventData.after; const response = yield octokit.repos.compareCommits({ - headers: { - accept: "application/vnd.github.v3.diff", - }, - owner: prDetails.owner, - repo: prDetails.repo, - base: newBaseSha, - head: newHeadSha, + headers: { + accept: "application/vnd.github.v3.diff", + }, + owner: prDetails.owner, + repo: prDetails.repo, + base: newBaseSha, + head: newHeadSha, }); diff = String(response.data); - } - else { - console.log(`Unsupported event: action=${eventData.action}, process.env.GITHUB_EVENT_NAME=${process.env.GITHUB_EVENT_NAME}`); + } else { + console.log( + `Unsupported event: action=${eventData.action}, process.env.GITHUB_EVENT_NAME=${process.env.GITHUB_EVENT_NAME}` + ); return; - } - if (!diff) { + } + if (!diff) { console.log("No diff found"); return; - } - const parsedDiff = (0, parse_diff_1.default)(diff); - const excludePatterns = core + } + const parsedDiff = (0, parse_diff_1.default)(diff); + const excludePatterns = core .getInput("exclude") .split(",") .map((s) => s.trim()); - const filteredDiff = parsedDiff.filter((file) => { - return !excludePatterns.some((pattern) => { var _a; return (0, minimatch_1.default)((_a = file.to) !== null && _a !== void 0 ? _a : "", pattern); }); - }); - const comments = yield analyzeCode(filteredDiff, prDetails); - if (comments.length > 0) { + const filteredDiff = parsedDiff.filter((file) => { + return !excludePatterns.some((pattern) => { + var _a; + return (0, minimatch_1.default)( + (_a = file.to) !== null && _a !== void 0 ? _a : "", + pattern + ); + }); + }); + const comments = yield analyzeCode(filteredDiff, prDetails); + if (comments.length > 0) { // await createReviewComment( // prDetails.owner, // prDetails.repo, @@ -252,6732 +350,8843 @@ function main() { // comments // ); yield console.log("Comments:", comments); + } + }); + } + main().catch((error) => { + console.error("Error:", error); + process.exit(1); + }); + + /***/ + }, + + /***/ 7351: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); + } + : function (o, m, k, k2) { + if (k2 === undefined) 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 (mod != null) + for (var k in mod) + if (k !== "default" && Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.issue = exports.issueCommand = void 0; + const os = __importStar(__nccwpck_require__(2037)); + const utils_1 = __nccwpck_require__(5278); + /** + * Commands + * + * Command Format: + * ::name key=value,key=value::message + * + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ + function issueCommand(command, properties, message) { + const cmd = new Command(command, properties, message); + process.stdout.write(cmd.toString() + os.EOL); + } + exports.issueCommand = issueCommand; + function issue(name, message = "") { + issueCommand(name, {}, message); + } + exports.issue = issue; + const CMD_STRING = "::"; + class Command { + constructor(command, properties, message) { + if (!command) { + command = "missing.command"; + } + this.command = command; + this.properties = properties; + this.message = message; } - }); -} -main().catch((error) => { - console.error("Error:", error); - process.exit(1); -}); - - -/***/ }), - -/***/ 7351: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.issue = exports.issueCommand = void 0; -const os = __importStar(__nccwpck_require__(2037)); -const utils_1 = __nccwpck_require__(5278); -/** - * Commands - * - * Command Format: - * ::name key=value,key=value::message - * - * Examples: - * ::warning::This is the message - * ::set-env name=MY_VAR::some value - */ -function issueCommand(command, properties, message) { - const cmd = new Command(command, properties, message); - process.stdout.write(cmd.toString() + os.EOL); -} -exports.issueCommand = issueCommand; -function issue(name, message = '') { - issueCommand(name, {}, message); -} -exports.issue = issue; -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 += ' '; + 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)}`; - } + if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) { + first = false; + } else { + cmdStr += ","; + } + cmdStr += `${key}=${escapeProperty(val)}`; } + } } + } + cmdStr += `${CMD_STRING}${escapeData(this.message)}`; + return cmdStr; } - cmdStr += `${CMD_STRING}${escapeData(this.message)}`; - return cmdStr; - } -} -function escapeData(s) { - return utils_1.toCommandValue(s) - .replace(/%/g, '%25') - .replace(/\r/g, '%0D') - .replace(/\n/g, '%0A'); -} -function escapeProperty(s) { - return utils_1.toCommandValue(s) - .replace(/%/g, '%25') - .replace(/\r/g, '%0D') - .replace(/\n/g, '%0A') - .replace(/:/g, '%3A') - .replace(/,/g, '%2C'); -} -//# sourceMappingURL=command.js.map + } + function escapeData(s) { + return utils_1 + .toCommandValue(s) + .replace(/%/g, "%25") + .replace(/\r/g, "%0D") + .replace(/\n/g, "%0A"); + } + function escapeProperty(s) { + return utils_1 + .toCommandValue(s) + .replace(/%/g, "%25") + .replace(/\r/g, "%0D") + .replace(/\n/g, "%0A") + .replace(/:/g, "%3A") + .replace(/,/g, "%2C"); + } + //# sourceMappingURL=command.js.map -/***/ }), + /***/ + }, -/***/ 2186: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + /***/ 2186: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.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(exports, "__esModule", ({ value: true })); -exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; -const command_1 = __nccwpck_require__(7351); -const file_command_1 = __nccwpck_require__(717); -const utils_1 = __nccwpck_require__(5278); -const os = __importStar(__nccwpck_require__(2037)); -const path = __importStar(__nccwpck_require__(1017)); -const oidc_utils_1 = __nccwpck_require__(8041); -/** - * The code to exit an action - */ -var ExitCode; -(function (ExitCode) { - /** - * A code indicating that the action was successful - */ - ExitCode[ExitCode["Success"] = 0] = "Success"; - /** - * A code indicating that the action was a failure - */ - ExitCode[ExitCode["Failure"] = 1] = "Failure"; -})(ExitCode = exports.ExitCode || (exports.ExitCode = {})); -//----------------------------------------------------------------------- -// Variables -//----------------------------------------------------------------------- -/** - * Sets env variable for this action and future actions in the job - * @param name the name of the variable to set - * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function exportVariable(name, val) { - const convertedVal = utils_1.toCommandValue(val); - process.env[name] = convertedVal; - const filePath = process.env['GITHUB_ENV'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); - } - command_1.issueCommand('set-env', { name }, convertedVal); -} -exports.exportVariable = exportVariable; -/** - * Registers a secret which will get masked from logs - * @param secret value of the secret - */ -function setSecret(secret) { - command_1.issueCommand('add-mask', {}, secret); -} -exports.setSecret = setSecret; -/** - * Prepends inputPath to the PATH (for this action and future actions) - * @param inputPath - */ -function addPath(inputPath) { - const filePath = process.env['GITHUB_PATH'] || ''; - if (filePath) { - file_command_1.issueFileCommand('PATH', inputPath); - } - else { - command_1.issueCommand('add-path', {}, inputPath); - } - process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; -} -exports.addPath = addPath; -/** - * Gets the value of an input. - * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. - * Returns an empty string if the value is not defined. - * - * @param name name of the input to get - * @param options optional. See InputOptions. - * @returns string - */ -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 && options.trimWhitespace === false) { - return val; - } - return val.trim(); -} -exports.getInput = getInput; -/** - * Gets the values of an multiline input. Each value is also trimmed. - * - * @param name name of the input to get - * @param options optional. See InputOptions. - * @returns string[] - * - */ -function getMultilineInput(name, options) { - const inputs = getInput(name, options) - .split('\n') - .filter(x => x !== ''); - if (options && options.trimWhitespace === false) { - return inputs; - } - return inputs.map(input => input.trim()); -} -exports.getMultilineInput = getMultilineInput; -/** - * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. - * Support boolean input list: `true | True | TRUE | false | False | FALSE` . - * The return value is also in boolean type. - * ref: https://yaml.org/spec/1.2/spec.html#id2804923 - * - * @param name name of the input to get - * @param options optional. See InputOptions. - * @returns boolean - */ -function getBooleanInput(name, options) { - const trueValue = ['true', 'True', 'TRUE']; - const falseValue = ['false', 'False', 'FALSE']; - const val = getInput(name, options); - if (trueValue.includes(val)) - return true; - if (falseValue.includes(val)) - return false; - throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + - `Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); -} -exports.getBooleanInput = getBooleanInput; -/** - * Sets the value of an output. - * - * @param name name of the output to set - * @param value value to store. Non-string values will be converted to a string via JSON.stringify - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function setOutput(name, value) { - const filePath = process.env['GITHUB_OUTPUT'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); - } - process.stdout.write(os.EOL); - command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); -} -exports.setOutput = setOutput; -/** - * Enables or disables the echoing of commands into stdout for the rest of the step. - * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. - * - */ -function setCommandEcho(enabled) { - command_1.issue('echo', enabled ? 'on' : 'off'); -} -exports.setCommandEcho = setCommandEcho; -//----------------------------------------------------------------------- -// Results -//----------------------------------------------------------------------- -/** - * Sets the action status to failed. - * When the action exits it will be with an exit code of 1 - * @param message add error issue message - */ -function setFailed(message) { - process.exitCode = ExitCode.Failure; - error(message); -} -exports.setFailed = setFailed; -//----------------------------------------------------------------------- -// Logging Commands -//----------------------------------------------------------------------- -/** - * Gets whether Actions Step Debug is on or not - */ -function isDebug() { - return process.env['RUNNER_DEBUG'] === '1'; -} -exports.isDebug = isDebug; -/** - * Writes debug message to user log - * @param message debug message - */ -function debug(message) { - command_1.issueCommand('debug', {}, message); -} -exports.debug = debug; -/** - * Adds an error issue - * @param message error issue message. Errors will be converted to string via toString() - * @param properties optional properties to add to the annotation. - */ -function error(message, properties = {}) { - command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -exports.error = error; -/** - * Adds a warning issue - * @param message warning issue message. Errors will be converted to string via toString() - * @param properties optional properties to add to the annotation. - */ -function warning(message, properties = {}) { - command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -exports.warning = warning; -/** - * Adds a notice issue - * @param message notice issue message. Errors will be converted to string via toString() - * @param properties optional properties to add to the annotation. - */ -function notice(message, properties = {}) { - command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -exports.notice = notice; -/** - * Writes info to log with console.log. - * @param message info message - */ -function info(message) { - process.stdout.write(message + os.EOL); -} -exports.info = info; -/** - * Begin an output group. - * - * Output until the next `groupEnd` will be foldable in this group - * - * @param name The name of the output group - */ -function startGroup(name) { - command_1.issue('group', name); -} -exports.startGroup = startGroup; -/** - * End an output group. - */ -function endGroup() { - command_1.issue('endgroup'); -} -exports.endGroup = endGroup; -/** - * Wrap an asynchronous function call in a group. - * - * Returns the same type as the function itself. - * - * @param name The name of the group - * @param fn The function to wrap in the group - */ -function group(name, fn) { - return __awaiter(this, void 0, void 0, function* () { - startGroup(name); - let result; - try { - result = yield fn(); - } - finally { - endGroup(); - } - return result; - }); -} -exports.group = group; -//----------------------------------------------------------------------- -// Wrapper action state -//----------------------------------------------------------------------- -/** - * Saves state for current action, the state can only be retrieved by this action's post job execution. - * - * @param name name of the state to store - * @param value value to store. Non-string values will be converted to a string via JSON.stringify - */ -// eslint-disable-next-line @typescript-eslint/no-explicit-any -function saveState(name, value) { - const filePath = process.env['GITHUB_STATE'] || ''; - if (filePath) { - return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); - } - command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); -} -exports.saveState = saveState; -/** - * Gets the value of an state set by this action's main execution. - * - * @param name name of the state to get - * @returns string - */ -function getState(name) { - return process.env[`STATE_${name}`] || ''; -} -exports.getState = getState; -function getIDToken(aud) { - return __awaiter(this, void 0, void 0, function* () { - return yield oidc_utils_1.OidcClient.getIDToken(aud); - }); -} -exports.getIDToken = getIDToken; -/** - * Summary exports - */ -var summary_1 = __nccwpck_require__(1327); -Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); -/** - * @deprecated use core.summary - */ -var summary_2 = __nccwpck_require__(1327); -Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); -/** - * Path exports - */ -var path_utils_1 = __nccwpck_require__(2981); -Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); -Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); -Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); -//# sourceMappingURL=core.js.map - -/***/ }), - -/***/ 717: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -// For internal use, subject to change. -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; -// We use any as a valid input type -/* eslint-disable @typescript-eslint/no-explicit-any */ -const fs = __importStar(__nccwpck_require__(7147)); -const os = __importStar(__nccwpck_require__(2037)); -const uuid_1 = __nccwpck_require__(5840); -const utils_1 = __nccwpck_require__(5278); -function issueFileCommand(command, message) { - const filePath = process.env[`GITHUB_${command}`]; - if (!filePath) { - throw new Error(`Unable to find environment variable for file command ${command}`); - } - if (!fs.existsSync(filePath)) { - throw new Error(`Missing file at path: ${filePath}`); - } - fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, { - encoding: 'utf8' - }); -} -exports.issueFileCommand = issueFileCommand; -function prepareKeyValueMessage(key, value) { - const delimiter = `ghadelimiter_${uuid_1.v4()}`; - const convertedValue = utils_1.toCommandValue(value); - // These should realistically never happen, but just in case someone finds a - // way to exploit uuid generation let's not allow keys or values that contain - // the delimiter. - 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}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; -} -exports.prepareKeyValueMessage = prepareKeyValueMessage; -//# sourceMappingURL=file-command.js.map - -/***/ }), - -/***/ 8041: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -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(exports, "__esModule", ({ value: true })); -exports.OidcClient = void 0; -const http_client_1 = __nccwpck_require__(6255); -const auth_1 = __nccwpck_require__(5526); -const core_1 = __nccwpck_require__(2186); -class OidcClient { - static createHttpClient(allowRetry = true, maxRetry = 10) { - const requestOptions = { - allowRetries: allowRetry, - maxRetries: maxRetry + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); + } + : function (o, m, k, k2) { + if (k2 === undefined) 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 (mod != null) + for (var k in mod) + if (k !== "default" && Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; }; - return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions); - } - static getRequestToken() { - const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN']; - if (!token) { - throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable'); + 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(exports, "__esModule", { value: true }); + exports.getIDToken = + exports.getState = + exports.saveState = + exports.group = + exports.endGroup = + exports.startGroup = + exports.info = + exports.notice = + exports.warning = + exports.error = + exports.debug = + exports.isDebug = + exports.setFailed = + exports.setCommandEcho = + exports.setOutput = + exports.getBooleanInput = + exports.getMultilineInput = + exports.getInput = + exports.addPath = + exports.setSecret = + exports.exportVariable = + exports.ExitCode = + void 0; + const command_1 = __nccwpck_require__(7351); + const file_command_1 = __nccwpck_require__(717); + const utils_1 = __nccwpck_require__(5278); + const os = __importStar(__nccwpck_require__(2037)); + const path = __importStar(__nccwpck_require__(1017)); + const oidc_utils_1 = __nccwpck_require__(8041); + /** + * The code to exit an action + */ + var ExitCode; + (function (ExitCode) { + /** + * A code indicating that the action was successful + */ + ExitCode[(ExitCode["Success"] = 0)] = "Success"; + /** + * A code indicating that the action was a failure + */ + ExitCode[(ExitCode["Failure"] = 1)] = "Failure"; + })((ExitCode = exports.ExitCode || (exports.ExitCode = {}))); + //----------------------------------------------------------------------- + // Variables + //----------------------------------------------------------------------- + /** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function exportVariable(name, val) { + const convertedVal = utils_1.toCommandValue(val); + process.env[name] = convertedVal; + const filePath = process.env["GITHUB_ENV"] || ""; + if (filePath) { + return file_command_1.issueFileCommand( + "ENV", + file_command_1.prepareKeyValueMessage(name, val) + ); } - return token; - } - static getIDTokenUrl() { - const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL']; - if (!runtimeUrl) { - throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable'); + command_1.issueCommand("set-env", { name }, convertedVal); + } + exports.exportVariable = exportVariable; + /** + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ + function setSecret(secret) { + command_1.issueCommand("add-mask", {}, secret); + } + exports.setSecret = setSecret; + /** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ + function addPath(inputPath) { + const filePath = process.env["GITHUB_PATH"] || ""; + if (filePath) { + file_command_1.issueFileCommand("PATH", inputPath); + } else { + command_1.issueCommand("add-path", {}, inputPath); } - return runtimeUrl; - } - static getCall(id_token_url) { - var _a; + process.env[ + "PATH" + ] = `${inputPath}${path.delimiter}${process.env["PATH"]}`; + } + exports.addPath = addPath; + /** + * Gets the value of an input. + * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. + * Returns an empty string if the value is not defined. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ + 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 && options.trimWhitespace === false) { + return val; + } + return val.trim(); + } + exports.getInput = getInput; + /** + * Gets the values of an multiline input. Each value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string[] + * + */ + function getMultilineInput(name, options) { + const inputs = getInput(name, options) + .split("\n") + .filter((x) => x !== ""); + if (options && options.trimWhitespace === false) { + return inputs; + } + return inputs.map((input) => input.trim()); + } + exports.getMultilineInput = getMultilineInput; + /** + * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. + * Support boolean input list: `true | True | TRUE | false | False | FALSE` . + * The return value is also in boolean type. + * ref: https://yaml.org/spec/1.2/spec.html#id2804923 + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns boolean + */ + function getBooleanInput(name, options) { + const trueValue = ["true", "True", "TRUE"]; + const falseValue = ["false", "False", "FALSE"]; + const val = getInput(name, options); + if (trueValue.includes(val)) return true; + if (falseValue.includes(val)) return false; + throw new TypeError( + `Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\`` + ); + } + exports.getBooleanInput = getBooleanInput; + /** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function setOutput(name, value) { + const filePath = process.env["GITHUB_OUTPUT"] || ""; + if (filePath) { + return file_command_1.issueFileCommand( + "OUTPUT", + file_command_1.prepareKeyValueMessage(name, value) + ); + } + process.stdout.write(os.EOL); + command_1.issueCommand( + "set-output", + { name }, + utils_1.toCommandValue(value) + ); + } + exports.setOutput = setOutput; + /** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ + function setCommandEcho(enabled) { + command_1.issue("echo", enabled ? "on" : "off"); + } + exports.setCommandEcho = setCommandEcho; + //----------------------------------------------------------------------- + // Results + //----------------------------------------------------------------------- + /** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ + function setFailed(message) { + process.exitCode = ExitCode.Failure; + error(message); + } + exports.setFailed = setFailed; + //----------------------------------------------------------------------- + // Logging Commands + //----------------------------------------------------------------------- + /** + * Gets whether Actions Step Debug is on or not + */ + function isDebug() { + return process.env["RUNNER_DEBUG"] === "1"; + } + exports.isDebug = isDebug; + /** + * Writes debug message to user log + * @param message debug message + */ + function debug(message) { + command_1.issueCommand("debug", {}, message); + } + exports.debug = debug; + /** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ + function error(message, properties = {}) { + command_1.issueCommand( + "error", + utils_1.toCommandProperties(properties), + message instanceof Error ? message.toString() : message + ); + } + exports.error = error; + /** + * Adds a warning issue + * @param message warning issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ + function warning(message, properties = {}) { + command_1.issueCommand( + "warning", + utils_1.toCommandProperties(properties), + message instanceof Error ? message.toString() : message + ); + } + exports.warning = warning; + /** + * Adds a notice issue + * @param message notice issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ + function notice(message, properties = {}) { + command_1.issueCommand( + "notice", + utils_1.toCommandProperties(properties), + message instanceof Error ? message.toString() : message + ); + } + exports.notice = notice; + /** + * Writes info to log with console.log. + * @param message info message + */ + function info(message) { + process.stdout.write(message + os.EOL); + } + exports.info = info; + /** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ + function startGroup(name) { + command_1.issue("group", name); + } + exports.startGroup = startGroup; + /** + * End an output group. + */ + function endGroup() { + command_1.issue("endgroup"); + } + exports.endGroup = endGroup; + /** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ + function group(name, fn) { return __awaiter(this, void 0, void 0, function* () { + startGroup(name); + let result; + try { + result = yield fn(); + } finally { + endGroup(); + } + return result; + }); + } + exports.group = group; + //----------------------------------------------------------------------- + // Wrapper action state + //----------------------------------------------------------------------- + /** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + function saveState(name, value) { + const filePath = process.env["GITHUB_STATE"] || ""; + if (filePath) { + return file_command_1.issueFileCommand( + "STATE", + file_command_1.prepareKeyValueMessage(name, value) + ); + } + command_1.issueCommand( + "save-state", + { name }, + utils_1.toCommandValue(value) + ); + } + exports.saveState = saveState; + /** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ + function getState(name) { + return process.env[`STATE_${name}`] || ""; + } + exports.getState = getState; + function getIDToken(aud) { + return __awaiter(this, void 0, void 0, function* () { + return yield oidc_utils_1.OidcClient.getIDToken(aud); + }); + } + exports.getIDToken = getIDToken; + /** + * Summary exports + */ + var summary_1 = __nccwpck_require__(1327); + Object.defineProperty(exports, "summary", { + enumerable: true, + get: function () { + return summary_1.summary; + }, + }); + /** + * @deprecated use core.summary + */ + var summary_2 = __nccwpck_require__(1327); + Object.defineProperty(exports, "markdownSummary", { + enumerable: true, + get: function () { + return summary_2.markdownSummary; + }, + }); + /** + * Path exports + */ + var path_utils_1 = __nccwpck_require__(2981); + Object.defineProperty(exports, "toPosixPath", { + enumerable: true, + get: function () { + return path_utils_1.toPosixPath; + }, + }); + Object.defineProperty(exports, "toWin32Path", { + enumerable: true, + get: function () { + return path_utils_1.toWin32Path; + }, + }); + Object.defineProperty(exports, "toPlatformPath", { + enumerable: true, + get: function () { + return path_utils_1.toPlatformPath; + }, + }); + //# sourceMappingURL=core.js.map + + /***/ + }, + + /***/ 717: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; + + // For internal use, subject to change. + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); + } + : function (o, m, k, k2) { + if (k2 === undefined) 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 (mod != null) + for (var k in mod) + if (k !== "default" && Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; + // We use any as a valid input type + /* eslint-disable @typescript-eslint/no-explicit-any */ + const fs = __importStar(__nccwpck_require__(7147)); + const os = __importStar(__nccwpck_require__(2037)); + const uuid_1 = __nccwpck_require__(5840); + const utils_1 = __nccwpck_require__(5278); + function issueFileCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) { + throw new Error( + `Unable to find environment variable for file command ${command}` + ); + } + if (!fs.existsSync(filePath)) { + throw new Error(`Missing file at path: ${filePath}`); + } + fs.appendFileSync( + filePath, + `${utils_1.toCommandValue(message)}${os.EOL}`, + { + encoding: "utf8", + } + ); + } + exports.issueFileCommand = issueFileCommand; + function prepareKeyValueMessage(key, value) { + const delimiter = `ghadelimiter_${uuid_1.v4()}`; + const convertedValue = utils_1.toCommandValue(value); + // These should realistically never happen, but just in case someone finds a + // way to exploit uuid generation let's not allow keys or values that contain + // the delimiter. + 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}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; + } + exports.prepareKeyValueMessage = prepareKeyValueMessage; + //# sourceMappingURL=file-command.js.map + + /***/ + }, + + /***/ 8041: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; + + 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(exports, "__esModule", { value: true }); + exports.OidcClient = void 0; + const http_client_1 = __nccwpck_require__(6255); + const auth_1 = __nccwpck_require__(5526); + const core_1 = __nccwpck_require__(2186); + class OidcClient { + static createHttpClient(allowRetry = true, maxRetry = 10) { + const requestOptions = { + allowRetries: allowRetry, + maxRetries: maxRetry, + }; + return new http_client_1.HttpClient( + "actions/oidc-client", + [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], + requestOptions + ); + } + static getRequestToken() { + const token = process.env["ACTIONS_ID_TOKEN_REQUEST_TOKEN"]; + if (!token) { + throw new Error( + "Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable" + ); + } + return token; + } + static getIDTokenUrl() { + const runtimeUrl = process.env["ACTIONS_ID_TOKEN_REQUEST_URL"]; + if (!runtimeUrl) { + throw new Error( + "Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable" + ); + } + return runtimeUrl; + } + static getCall(id_token_url) { + var _a; + return __awaiter(this, void 0, void 0, function* () { const httpclient = OidcClient.createHttpClient(); const res = yield httpclient - .getJson(id_token_url) - .catch(error => { + .getJson(id_token_url) + .catch((error) => { throw new Error(`Failed to get ID Token. \n Error Code : ${error.statusCode}\n Error Message: ${error.result.message}`); - }); - const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; + }); + const id_token = + (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; if (!id_token) { - throw new Error('Response json body do not have ID Token field'); + throw new Error("Response json body do not have ID Token field"); } return id_token; - }); - } - static getIDToken(audience) { - return __awaiter(this, void 0, void 0, function* () { + }); + } + static getIDToken(audience) { + return __awaiter(this, void 0, void 0, function* () { try { - // New ID Token is requested from action service - let id_token_url = OidcClient.getIDTokenUrl(); - if (audience) { - const encodedAudience = encodeURIComponent(audience); - id_token_url = `${id_token_url}&audience=${encodedAudience}`; - } - core_1.debug(`ID token url is ${id_token_url}`); - const id_token = yield OidcClient.getCall(id_token_url); - core_1.setSecret(id_token); - return id_token; + // New ID Token is requested from action service + let id_token_url = OidcClient.getIDTokenUrl(); + if (audience) { + const encodedAudience = encodeURIComponent(audience); + id_token_url = `${id_token_url}&audience=${encodedAudience}`; + } + core_1.debug(`ID token url is ${id_token_url}`); + const id_token = yield OidcClient.getCall(id_token_url); + core_1.setSecret(id_token); + return id_token; + } catch (error) { + throw new Error(`Error message: ${error.message}`); } - catch (error) { - throw new Error(`Error message: ${error.message}`); + }); + } + } + exports.OidcClient = OidcClient; + //# sourceMappingURL=oidc-utils.js.map + + /***/ + }, + + /***/ 2981: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); } - }); - } -} -exports.OidcClient = OidcClient; -//# sourceMappingURL=oidc-utils.js.map + : function (o, m, k, k2) { + if (k2 === undefined) 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 (mod != null) + for (var k in mod) + if (k !== "default" && Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.toPlatformPath = + exports.toWin32Path = + exports.toPosixPath = + void 0; + const path = __importStar(__nccwpck_require__(1017)); + /** + * toPosixPath converts the given path to the posix form. On Windows, \\ will be + * replaced with /. + * + * @param pth. Path to transform. + * @return string Posix path. + */ + function toPosixPath(pth) { + return pth.replace(/[\\]/g, "/"); + } + exports.toPosixPath = toPosixPath; + /** + * toWin32Path converts the given path to the win32 form. On Linux, / will be + * replaced with \\. + * + * @param pth. Path to transform. + * @return string Win32 path. + */ + function toWin32Path(pth) { + return pth.replace(/[/]/g, "\\"); + } + exports.toWin32Path = toWin32Path; + /** + * toPlatformPath converts the given path to a platform-specific path. It does + * this by replacing instances of / and \ with the platform-specific path + * separator. + * + * @param pth The path to platformize. + * @return string The platform-specific path. + */ + function toPlatformPath(pth) { + return pth.replace(/[/\\]/g, path.sep); + } + exports.toPlatformPath = toPlatformPath; + //# sourceMappingURL=path-utils.js.map -/***/ }), + /***/ + }, -/***/ 2981: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + /***/ 1327: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; -const path = __importStar(__nccwpck_require__(1017)); -/** - * toPosixPath converts the given path to the posix form. On Windows, \\ will be - * replaced with /. - * - * @param pth. Path to transform. - * @return string Posix path. - */ -function toPosixPath(pth) { - return pth.replace(/[\\]/g, '/'); -} -exports.toPosixPath = toPosixPath; -/** - * toWin32Path converts the given path to the win32 form. On Linux, / will be - * replaced with \\. - * - * @param pth. Path to transform. - * @return string Win32 path. - */ -function toWin32Path(pth) { - return pth.replace(/[/]/g, '\\'); -} -exports.toWin32Path = toWin32Path; -/** - * toPlatformPath converts the given path to a platform-specific path. It does - * this by replacing instances of / and \ with the platform-specific path - * separator. - * - * @param pth The path to platformize. - * @return string The platform-specific path. - */ -function toPlatformPath(pth) { - return pth.replace(/[/\\]/g, path.sep); -} -exports.toPlatformPath = toPlatformPath; -//# sourceMappingURL=path-utils.js.map - -/***/ }), - -/***/ 1327: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -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(exports, "__esModule", ({ value: true })); -exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; -const os_1 = __nccwpck_require__(2037); -const fs_1 = __nccwpck_require__(7147); -const { access, appendFile, writeFile } = fs_1.promises; -exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; -exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; -class Summary { - constructor() { - this._buffer = ''; - } - /** - * Finds the summary file path from the environment, rejects if env var is not found or file does not exist - * Also checks r/w permissions. - * - * @returns step summary file path - */ - filePath() { - return __awaiter(this, void 0, void 0, function* () { + 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(exports, "__esModule", { value: true }); + exports.summary = + exports.markdownSummary = + exports.SUMMARY_DOCS_URL = + exports.SUMMARY_ENV_VAR = + void 0; + const os_1 = __nccwpck_require__(2037); + const fs_1 = __nccwpck_require__(7147); + const { access, appendFile, writeFile } = fs_1.promises; + exports.SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY"; + exports.SUMMARY_DOCS_URL = + "https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary"; + class Summary { + constructor() { + this._buffer = ""; + } + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ + filePath() { + return __awaiter(this, void 0, void 0, function* () { if (this._filePath) { - return this._filePath; + return this._filePath; } const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; if (!pathFromEnv) { - throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + throw new Error( + `Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.` + ); } try { - yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK); - } - catch (_a) { - throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + yield access( + pathFromEnv, + fs_1.constants.R_OK | fs_1.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; - }); - } - /** - * Wraps content in an HTML tag, adding any HTML attributes - * - * @param {string} tag HTML tag to wrap - * @param {string | null} content content within the tag - * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add - * - * @returns {string} content wrapped in HTML element - */ - wrap(tag, content, attrs = {}) { - const htmlAttrs = Object.entries(attrs) - .map(([key, value]) => ` ${key}="${value}"`) - .join(''); - if (!content) { - return `<${tag}${htmlAttrs}>`; + }); } - return `<${tag}${htmlAttrs}>${content}`; - } - /** - * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. - * - * @param {SummaryWriteOptions} [options] (optional) options for write operation - * - * @returns {Promise} summary instance - */ - write(options) { - return __awaiter(this, void 0, void 0, function* () { - const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ + wrap(tag, content, attrs = {}) { + const htmlAttrs = Object.entries(attrs) + .map(([key, value]) => ` ${key}="${value}"`) + .join(""); + if (!content) { + return `<${tag}${htmlAttrs}>`; + } + return `<${tag}${htmlAttrs}>${content}`; + } + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ + write(options) { + return __awaiter(this, void 0, void 0, function* () { + const overwrite = !!(options === null || options === void 0 + ? void 0 + : options.overwrite); const filePath = yield this.filePath(); const writeFunc = overwrite ? writeFile : appendFile; - yield writeFunc(filePath, this._buffer, { encoding: 'utf8' }); + yield writeFunc(filePath, this._buffer, { encoding: "utf8" }); return this.emptyBuffer(); - }); - } - /** - * Clears the summary buffer and wipes the summary file - * - * @returns {Summary} summary instance - */ - clear() { - return __awaiter(this, void 0, void 0, function* () { + }); + } + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ + clear() { + return __awaiter(this, void 0, void 0, function* () { return this.emptyBuffer().write({ overwrite: true }); - }); - } - /** - * Returns the current summary buffer as a string - * - * @returns {string} string of summary buffer - */ - stringify() { - return this._buffer; - } - /** - * If the summary buffer is empty - * - * @returns {boolen} true if the buffer is empty - */ - isEmptyBuffer() { - return this._buffer.length === 0; - } - /** - * Resets the summary buffer without writing to summary file - * - * @returns {Summary} summary instance - */ - emptyBuffer() { - this._buffer = ''; - return this; - } - /** - * Adds raw text to the summary buffer - * - * @param {string} text content to add - * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) - * - * @returns {Summary} summary instance - */ - addRaw(text, addEOL = false) { - this._buffer += text; - return addEOL ? this.addEOL() : this; - } - /** - * Adds the operating system-specific end-of-line marker to the buffer - * - * @returns {Summary} summary instance - */ - addEOL() { - return this.addRaw(os_1.EOL); - } - /** - * Adds an HTML codeblock to the summary buffer - * - * @param {string} code content to render within fenced code block - * @param {string} lang (optional) language to syntax highlight code - * - * @returns {Summary} summary instance - */ - addCodeBlock(code, lang) { - const attrs = Object.assign({}, (lang && { lang })); - const element = this.wrap('pre', this.wrap('code', code), attrs); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML list to the summary buffer - * - * @param {string[]} items list of items to render - * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) - * - * @returns {Summary} summary instance - */ - 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(); - } - /** - * Adds an HTML table to the summary buffer - * - * @param {SummaryTableCell[]} rows table rows - * - * @returns {Summary} summary instance - */ - addTable(rows) { - const tableBody = rows - .map(row => { - const cells = row - .map(cell => { - if (typeof cell === 'string') { - 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); + }); + } + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ + stringify() { + return this._buffer; + } + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ + isEmptyBuffer() { + return this._buffer.length === 0; + } + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ + emptyBuffer() { + this._buffer = ""; + return this; + } + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ + addRaw(text, addEOL = false) { + this._buffer += text; + return addEOL ? this.addEOL() : this; + } + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ + addEOL() { + return this.addRaw(os_1.EOL); + } + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ + addCodeBlock(code, lang) { + const attrs = Object.assign({}, lang && { lang }); + const element = this.wrap("pre", this.wrap("code", code), attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ + 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(); + } + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ + addTable(rows) { + const tableBody = rows + .map((row) => { + const cells = row + .map((cell) => { + if (typeof cell === "string") { + 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(''); - return this.wrap('tr', cells); - }) - .join(''); - const element = this.wrap('table', tableBody); - return this.addRaw(element).addEOL(); - } - /** - * Adds a collapsable HTML details element to the summary buffer - * - * @param {string} label text for the closed state - * @param {string} content collapsable content - * - * @returns {Summary} summary instance - */ - addDetails(label, content) { - const element = this.wrap('details', this.wrap('summary', label) + content); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML image tag to the summary buffer - * - * @param {string} src path to the image you to embed - * @param {string} alt text description of the image - * @param {SummaryImageOptions} options (optional) addition image attributes - * - * @returns {Summary} summary instance - */ - 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(); - } - /** - * Adds an HTML section heading element - * - * @param {string} text heading text - * @param {number | string} [level=1] (optional) the heading level, default: 1 - * - * @returns {Summary} summary instance - */ - addHeading(text, level) { - const tag = `h${level}`; - const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag) + .join(""); + const element = this.wrap("table", tableBody); + return this.addRaw(element).addEOL(); + } + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ + addDetails(label, content) { + const element = this.wrap( + "details", + this.wrap("summary", label) + content + ); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ + 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(); + } + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ + 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(); - } - /** - * Adds an HTML thematic break (
) to the summary buffer - * - * @returns {Summary} summary instance - */ - addSeparator() { - const element = this.wrap('hr', null); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML line break (
) to the summary buffer - * - * @returns {Summary} summary instance - */ - addBreak() { - const element = this.wrap('br', null); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML blockquote to the summary buffer - * - * @param {string} text quote text - * @param {string} cite (optional) citation url - * - * @returns {Summary} summary instance - */ - addQuote(text, cite) { - const attrs = Object.assign({}, (cite && { cite })); - const element = this.wrap('blockquote', text, attrs); - return this.addRaw(element).addEOL(); - } - /** - * Adds an HTML anchor tag to the summary buffer - * - * @param {string} text link text/content - * @param {string} href hyperlink - * - * @returns {Summary} summary instance - */ - addLink(text, href) { - const element = this.wrap('a', text, { href }); - return this.addRaw(element).addEOL(); - } -} -const _summary = new Summary(); -/** - * @deprecated use `core.summary` - */ -exports.markdownSummary = _summary; -exports.summary = _summary; -//# sourceMappingURL=summary.js.map - -/***/ }), - -/***/ 5278: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -// We use any as a valid input type -/* eslint-disable @typescript-eslint/no-explicit-any */ -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.toCommandProperties = exports.toCommandValue = void 0; -/** - * Sanitizes an input into a string so it can be passed into issueCommand safely - * @param input input to sanitize into a string - */ -function toCommandValue(input) { - if (input === null || input === undefined) { - return ''; - } - else if (typeof input === 'string' || input instanceof String) { - return input; - } - return JSON.stringify(input); -} -exports.toCommandValue = toCommandValue; -/** - * - * @param annotationProperties - * @returns The command properties to send with the actual annotation command - * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 - */ -function 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 - }; -} -exports.toCommandProperties = toCommandProperties; -//# sourceMappingURL=utils.js.map - -/***/ }), - -/***/ 5526: -/***/ (function(__unused_webpack_module, exports) { - -"use strict"; - -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(exports, "__esModule", ({ value: true })); -exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; -class BasicCredentialHandler { - constructor(username, password) { - this.username = username; - this.password = password; - } - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); + : "h1"; + const element = this.wrap(allowedTag, text); + return this.addRaw(element).addEOL(); } - options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BasicCredentialHandler = BasicCredentialHandler; -class BearerCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); + /** + * Adds an HTML thematic break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addSeparator() { + const element = this.wrap("hr", null); + return this.addRaw(element).addEOL(); } - options.headers['Authorization'] = `Bearer ${this.token}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.BearerCredentialHandler = BearerCredentialHandler; -class PersonalAccessTokenCredentialHandler { - constructor(token) { - this.token = token; - } - // currently implements pre-authorization - // TODO: support preAuth = false where it hooks on 401 - prepareRequest(options) { - if (!options.headers) { - throw Error('The request has no headers'); + /** + * Adds an HTML line break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addBreak() { + const element = this.wrap("br", null); + return this.addRaw(element).addEOL(); } - options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; - } - // This handler cannot handle 401 - canHandleAuthentication() { - return false; - } - handleAuthentication() { - return __awaiter(this, void 0, void 0, function* () { - throw new Error('not implemented'); - }); - } -} -exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; -//# sourceMappingURL=auth.js.map + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ + addQuote(text, cite) { + const attrs = Object.assign({}, cite && { cite }); + const element = this.wrap("blockquote", text, attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ + addLink(text, href) { + const element = this.wrap("a", text, { href }); + return this.addRaw(element).addEOL(); + } + } + const _summary = new Summary(); + /** + * @deprecated use `core.summary` + */ + exports.markdownSummary = _summary; + exports.summary = _summary; + //# sourceMappingURL=summary.js.map -/***/ }), + /***/ + }, -/***/ 6255: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + /***/ 5278: /***/ (__unused_webpack_module, exports) => { + "use strict"; -"use strict"; + // We use any as a valid input type + /* eslint-disable @typescript-eslint/no-explicit-any */ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.toCommandProperties = exports.toCommandValue = void 0; + /** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ + function toCommandValue(input) { + if (input === null || input === undefined) { + return ""; + } else if (typeof input === "string" || input instanceof String) { + return input; + } + return JSON.stringify(input); + } + exports.toCommandValue = toCommandValue; + /** + * + * @param annotationProperties + * @returns The command properties to send with the actual annotation command + * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 + */ + function 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, + }; + } + exports.toCommandProperties = toCommandProperties; + //# sourceMappingURL=utils.js.map -/* eslint-disable @typescript-eslint/no-explicit-any */ -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.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(exports, "__esModule", ({ value: true })); -exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; -const http = __importStar(__nccwpck_require__(3685)); -const https = __importStar(__nccwpck_require__(5687)); -const pm = __importStar(__nccwpck_require__(9835)); -const tunnel = __importStar(__nccwpck_require__(4294)); -var 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"; -})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); -var Headers; -(function (Headers) { - Headers["Accept"] = "accept"; - Headers["ContentType"] = "content-type"; -})(Headers = exports.Headers || (exports.Headers = {})); -var MediaTypes; -(function (MediaTypes) { - MediaTypes["ApplicationJson"] = "application/json"; -})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); -/** - * Returns the proxy URL, depending upon the supplied url and proxy environment variables. - * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com - */ -function getProxyUrl(serverUrl) { - const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); - return proxyUrl ? proxyUrl.href : ''; -} -exports.getProxyUrl = getProxyUrl; -const HttpRedirectCodes = [ - HttpCodes.MovedPermanently, - HttpCodes.ResourceMoved, - HttpCodes.SeeOther, - HttpCodes.TemporaryRedirect, - HttpCodes.PermanentRedirect -]; -const HttpResponseRetryCodes = [ - HttpCodes.BadGateway, - HttpCodes.ServiceUnavailable, - HttpCodes.GatewayTimeout -]; -const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; -const ExponentialBackoffCeiling = 10; -const ExponentialBackoffTimeSlice = 5; -class HttpClientError extends Error { - constructor(message, statusCode) { - super(message); - this.name = 'HttpClientError'; - this.statusCode = statusCode; - Object.setPrototypeOf(this, HttpClientError.prototype); - } -} -exports.HttpClientError = HttpClientError; -class HttpClientResponse { - constructor(message) { - this.message = message; - } - readBody() { - return __awaiter(this, void 0, void 0, function* () { - return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { + /***/ + }, + + /***/ 5526: /***/ function (__unused_webpack_module, exports) { + "use strict"; + + 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(exports, "__esModule", { value: true }); + exports.PersonalAccessTokenCredentialHandler = + exports.BearerCredentialHandler = + exports.BasicCredentialHandler = + void 0; + class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + if (!options.headers) { + throw Error("The request has no headers"); + } + options.headers["Authorization"] = `Basic ${Buffer.from( + `${this.username}:${this.password}` + ).toString("base64")}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error("not implemented"); + }); + } + } + exports.BasicCredentialHandler = BasicCredentialHandler; + class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error("The request has no headers"); + } + options.headers["Authorization"] = `Bearer ${this.token}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error("not implemented"); + }); + } + } + exports.BearerCredentialHandler = BearerCredentialHandler; + class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error("The request has no headers"); + } + options.headers["Authorization"] = `Basic ${Buffer.from( + `PAT:${this.token}` + ).toString("base64")}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error("not implemented"); + }); + } + } + exports.PersonalAccessTokenCredentialHandler = + PersonalAccessTokenCredentialHandler; + //# sourceMappingURL=auth.js.map + + /***/ + }, + + /***/ 6255: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; + + /* eslint-disable @typescript-eslint/no-explicit-any */ + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); + } + : function (o, m, k, k2) { + if (k2 === undefined) 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 (mod != null) + for (var k in mod) + if (k !== "default" && Object.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(exports, "__esModule", { value: true }); + exports.HttpClient = + exports.isHttps = + exports.HttpClientResponse = + exports.HttpClientError = + exports.getProxyUrl = + exports.MediaTypes = + exports.Headers = + exports.HttpCodes = + void 0; + const http = __importStar(__nccwpck_require__(3685)); + const https = __importStar(__nccwpck_require__(5687)); + const pm = __importStar(__nccwpck_require__(9835)); + const tunnel = __importStar(__nccwpck_require__(4294)); + var 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"; + })((HttpCodes = exports.HttpCodes || (exports.HttpCodes = {}))); + var Headers; + (function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; + })((Headers = exports.Headers || (exports.Headers = {}))); + var MediaTypes; + (function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; + })((MediaTypes = exports.MediaTypes || (exports.MediaTypes = {}))); + /** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + function getProxyUrl(serverUrl) { + const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ""; + } + exports.getProxyUrl = getProxyUrl; + const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect, + ]; + const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout, + ]; + const RetryableHttpVerbs = ["OPTIONS", "GET", "DELETE", "HEAD"]; + const ExponentialBackoffCeiling = 10; + const ExponentialBackoffTimeSlice = 5; + class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = "HttpClientError"; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); + } + } + exports.HttpClientError = HttpClientError; + class HttpClientResponse { + constructor(message) { + this.message = message; + } + readBody() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve) => + __awaiter(this, void 0, void 0, function* () { let output = Buffer.alloc(0); - this.message.on('data', (chunk) => { - output = Buffer.concat([output, chunk]); + this.message.on("data", (chunk) => { + output = Buffer.concat([output, chunk]); }); - this.message.on('end', () => { - resolve(output.toString()); + this.message.on("end", () => { + resolve(output.toString()); }); - })); - }); - } -} -exports.HttpClientResponse = HttpClientResponse; -function isHttps(requestUrl) { - const parsedUrl = new URL(requestUrl); - return parsedUrl.protocol === 'https:'; -} -exports.isHttps = isHttps; -class HttpClient { - constructor(userAgent, handlers, requestOptions) { - this._ignoreSslError = false; - this._allowRedirects = true; - this._allowRedirectDowngrade = false; - this._maxRedirects = 50; - this._allowRetries = false; - this._maxRetries = 1; - this._keepAlive = false; - this._disposed = false; - this.userAgent = userAgent; - this.handlers = handlers || []; - this.requestOptions = requestOptions; - if (requestOptions) { + }) + ); + }); + } + } + exports.HttpClientResponse = HttpClientResponse; + function isHttps(requestUrl) { + const parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === "https:"; + } + exports.isHttps = isHttps; + class HttpClient { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = userAgent; + this.handlers = handlers || []; + this.requestOptions = requestOptions; + if (requestOptions) { if (requestOptions.ignoreSslError != null) { - this._ignoreSslError = requestOptions.ignoreSslError; + this._ignoreSslError = requestOptions.ignoreSslError; } this._socketTimeout = requestOptions.socketTimeout; if (requestOptions.allowRedirects != null) { - this._allowRedirects = requestOptions.allowRedirects; + this._allowRedirects = requestOptions.allowRedirects; } if (requestOptions.allowRedirectDowngrade != null) { - this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + this._allowRedirectDowngrade = + requestOptions.allowRedirectDowngrade; } if (requestOptions.maxRedirects != null) { - this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); } if (requestOptions.keepAlive != null) { - this._keepAlive = requestOptions.keepAlive; + this._keepAlive = requestOptions.keepAlive; } if (requestOptions.allowRetries != null) { - this._allowRetries = requestOptions.allowRetries; + this._allowRetries = requestOptions.allowRetries; } if (requestOptions.maxRetries != null) { - this._maxRetries = requestOptions.maxRetries; + this._maxRetries = requestOptions.maxRetries; } + } } - } - options(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); - }); - } - get(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('GET', requestUrl, null, additionalHeaders || {}); - }); - } - del(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('DELETE', requestUrl, null, additionalHeaders || {}); - }); - } - post(requestUrl, data, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('POST', requestUrl, data, additionalHeaders || {}); - }); - } - patch(requestUrl, data, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('PATCH', requestUrl, data, additionalHeaders || {}); - }); - } - put(requestUrl, data, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('PUT', requestUrl, data, additionalHeaders || {}); - }); - } - head(requestUrl, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { - return this.request('HEAD', requestUrl, null, additionalHeaders || {}); - }); - } - sendStream(verb, requestUrl, stream, additionalHeaders) { - return __awaiter(this, void 0, void 0, function* () { + options(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + "OPTIONS", + requestUrl, + null, + additionalHeaders || {} + ); + }); + } + get(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + "GET", + requestUrl, + null, + additionalHeaders || {} + ); + }); + } + del(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + "DELETE", + requestUrl, + null, + additionalHeaders || {} + ); + }); + } + post(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + "POST", + requestUrl, + data, + additionalHeaders || {} + ); + }); + } + patch(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + "PATCH", + requestUrl, + data, + additionalHeaders || {} + ); + }); + } + put(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + "PUT", + requestUrl, + data, + additionalHeaders || {} + ); + }); + } + head(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request( + "HEAD", + requestUrl, + null, + additionalHeaders || {} + ); + }); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { return this.request(verb, requestUrl, stream, additionalHeaders); - }); - } - /** - * Gets a typed object from an endpoint - * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise - */ - getJson(requestUrl, additionalHeaders = {}) { - return __awaiter(this, void 0, void 0, function* () { - additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + }); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + 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, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { 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.Accept] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.Accept, + MediaTypes.ApplicationJson + ); + additionalHeaders[Headers.ContentType] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.ContentType, + 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, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { 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.Accept] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.Accept, + MediaTypes.ApplicationJson + ); + additionalHeaders[Headers.ContentType] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.ContentType, + 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, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { 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.Accept] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.Accept, + MediaTypes.ApplicationJson + ); + additionalHeaders[Headers.ContentType] = + this._getExistingOrDefaultHeader( + additionalHeaders, + Headers.ContentType, + MediaTypes.ApplicationJson + ); const res = yield this.patch(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); - }); - } - /** - * Makes a raw http request. - * All other methods such as get, post, patch, and request ultimately call this. - * Prefer get, del, post and patch - */ - request(verb, requestUrl, data, headers) { - return __awaiter(this, void 0, void 0, function* () { + }); + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb, requestUrl, data, headers) { + return __awaiter(this, void 0, void 0, function* () { if (this._disposed) { - throw new Error('Client has already been disposed.'); + throw new Error("Client has already been disposed."); } const parsedUrl = new URL(requestUrl); let info = this._prepareRequest(verb, parsedUrl, headers); // Only perform retries on reads since writes may not be idempotent. - const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) + const maxTries = + this._allowRetries && RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1; let numTries = 0; let response; do { + response = yield this.requestRaw(info, data); + // Check if it's an authentication challenge + if ( + response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized + ) { + let authenticationHandler; + for (const handler of this.handlers) { + if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication( + this, + info, + data + ); + } else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while ( + response.message.statusCode && + HttpRedirectCodes.includes(response.message.statusCode) && + this._allowRedirects && + redirectsRemaining > 0 + ) { + const redirectUrl = response.message.headers["location"]; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + const parsedRedirectUrl = new URL(redirectUrl); + if ( + parsedUrl.protocol === "https:" && + parsedUrl.protocol !== parsedRedirectUrl.protocol && + !this._allowRedirectDowngrade + ) { + throw new Error( + "Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true." + ); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + yield response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (const header in headers) { + // header names are case insensitive + if (header.toLowerCase() === "authorization") { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); response = yield this.requestRaw(info, data); - // Check if it's an authentication challenge - if (response && - response.message && - response.message.statusCode === HttpCodes.Unauthorized) { - let authenticationHandler; - for (const handler of this.handlers) { - if (handler.canHandleAuthentication(response)) { - authenticationHandler = handler; - break; - } - } - if (authenticationHandler) { - return authenticationHandler.handleAuthentication(this, info, data); - } - else { - // We have received an unauthorized response but have no handlers to handle it. - // Let the response return to the caller. - return response; - } - } - let redirectsRemaining = this._maxRedirects; - while (response.message.statusCode && - HttpRedirectCodes.includes(response.message.statusCode) && - this._allowRedirects && - redirectsRemaining > 0) { - const redirectUrl = response.message.headers['location']; - if (!redirectUrl) { - // if there's no location to redirect to, we won't - break; - } - const parsedRedirectUrl = new URL(redirectUrl); - if (parsedUrl.protocol === 'https:' && - parsedUrl.protocol !== parsedRedirectUrl.protocol && - !this._allowRedirectDowngrade) { - throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); - } - // we need to finish reading the response before reassigning response - // which will leak the open socket. - yield response.readBody(); - // strip authorization header if redirected to a different hostname - if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { - for (const header in headers) { - // header names are case insensitive - if (header.toLowerCase() === 'authorization') { - delete headers[header]; - } - } - } - // let's make the request with the new redirectUrl - info = this._prepareRequest(verb, parsedRedirectUrl, headers); - response = yield this.requestRaw(info, data); - redirectsRemaining--; - } - if (!response.message.statusCode || - !HttpResponseRetryCodes.includes(response.message.statusCode)) { - // If not a retry code, return immediately instead of retrying - return response; - } - numTries += 1; - if (numTries < maxTries) { - yield response.readBody(); - yield this._performExponentialBackoff(numTries); - } + redirectsRemaining--; + } + if ( + !response.message.statusCode || + !HttpResponseRetryCodes.includes(response.message.statusCode) + ) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + yield response.readBody(); + yield this._performExponentialBackoff(numTries); + } } while (numTries < maxTries); return response; - }); - } - /** - * Needs to be called if keepAlive is set to true in request options. - */ - dispose() { - if (this._agent) { + }); + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { this._agent.destroy(); + } + this._disposed = true; } - this._disposed = true; - } - /** - * Raw request. - * @param info - * @param data - */ - requestRaw(info, data) { - return __awaiter(this, void 0, void 0, function* () { + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => { - function callbackForResult(err, res) { - if (err) { - reject(err); - } - else if (!res) { - // If `err` is not passed, then `res` must be passed. - reject(new Error('Unknown error')); - } - else { - resolve(res); - } + function callbackForResult(err, res) { + if (err) { + reject(err); + } else if (!res) { + // If `err` is not passed, then `res` must be passed. + reject(new Error("Unknown error")); + } else { + resolve(res); } - this.requestRawWithCallback(info, data, callbackForResult); + } + this.requestRawWithCallback(info, data, callbackForResult); }); - }); - } - /** - * Raw request with callback. - * @param info - * @param data - * @param onResult - */ - requestRawWithCallback(info, data, onResult) { - if (typeof data === 'string') { + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + if (typeof data === "string") { if (!info.options.headers) { - info.options.headers = {}; + info.options.headers = {}; } - info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); - } - let callbackCalled = false; - function handleResult(err, res) { + info.options.headers["Content-Length"] = Buffer.byteLength( + data, + "utf8" + ); + } + let callbackCalled = false; + function handleResult(err, res) { if (!callbackCalled) { - callbackCalled = true; - onResult(err, res); + callbackCalled = true; + onResult(err, res); } - } - const req = info.httpModule.request(info.options, (msg) => { + } + const req = info.httpModule.request(info.options, (msg) => { const res = new HttpClientResponse(msg); handleResult(undefined, res); - }); - let socket; - req.on('socket', sock => { + }); + let socket; + req.on("socket", (sock) => { socket = sock; - }); - // If we ever get disconnected, we want the socket to timeout eventually - req.setTimeout(this._socketTimeout || 3 * 60000, () => { + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { if (socket) { - socket.end(); + socket.end(); } handleResult(new Error(`Request timeout: ${info.options.path}`)); - }); - req.on('error', function (err) { + }); + req.on("error", function (err) { // err has statusCode property // res should have headers handleResult(err); - }); - if (data && typeof data === 'string') { - req.write(data, 'utf8'); - } - if (data && typeof data !== 'string') { - data.on('close', function () { - req.end(); + }); + if (data && typeof data === "string") { + req.write(data, "utf8"); + } + if (data && typeof data !== "string") { + data.on("close", function () { + req.end(); }); data.pipe(req); - } - else { + } else { req.end(); + } } - } - /** - * Gets an http agent. This function is useful when you need an http agent that handles - * routing through a proxy server - depending upon the url and proxy environment variables. - * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com - */ - getAgent(serverUrl) { - const parsedUrl = new URL(serverUrl); - return this._getAgent(parsedUrl); - } - _prepareRequest(method, requestUrl, headers) { - const info = {}; - info.parsedUrl = requestUrl; - const usingSsl = info.parsedUrl.protocol === 'https:'; - info.httpModule = usingSsl ? https : http; - const defaultPort = usingSsl ? 443 : 80; - info.options = {}; - info.options.host = info.parsedUrl.hostname; - info.options.port = info.parsedUrl.port + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + const parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === "https:"; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port ? parseInt(info.parsedUrl.port) : defaultPort; - info.options.path = - (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); - info.options.method = method; - info.options.headers = this._mergeHeaders(headers); - if (this.userAgent != null) { - info.options.headers['user-agent'] = this.userAgent; - } - info.options.agent = this._getAgent(info.parsedUrl); - // gives handlers an opportunity to participate - if (this.handlers) { + info.options.path = + (info.parsedUrl.pathname || "") + (info.parsedUrl.search || ""); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers["user-agent"] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { for (const handler of this.handlers) { - handler.prepareRequest(info.options); + handler.prepareRequest(info.options); } + } + return info; } - return info; - } - _mergeHeaders(headers) { - if (this.requestOptions && this.requestOptions.headers) { - return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); + _mergeHeaders(headers) { + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign( + {}, + lowercaseKeys(this.requestOptions.headers), + lowercaseKeys(headers || {}) + ); + } + return lowercaseKeys(headers || {}); } - return lowercaseKeys(headers || {}); - } - _getExistingOrDefaultHeader(additionalHeaders, header, _default) { - let clientHeader; - if (this.requestOptions && this.requestOptions.headers) { + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; } - return additionalHeaders[header] || clientHeader || _default; - } - _getAgent(parsedUrl) { - let agent; - const proxyUrl = pm.getProxyUrl(parsedUrl); - const useProxy = proxyUrl && proxyUrl.hostname; - if (this._keepAlive && useProxy) { + _getAgent(parsedUrl) { + let agent; + const proxyUrl = pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { agent = this._proxyAgent; - } - if (this._keepAlive && !useProxy) { + } + if (this._keepAlive && !useProxy) { agent = this._agent; - } - // if agent is already assigned use that agent. - if (agent) { + } + // if agent is already assigned use that agent. + if (agent) { return agent; - } - const usingSsl = parsedUrl.protocol === 'https:'; - let maxSockets = 100; - if (this.requestOptions) { - maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; - } - // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. - if (proxyUrl && proxyUrl.hostname) { + } + const usingSsl = parsedUrl.protocol === "https:"; + let maxSockets = 100; + if (this.requestOptions) { + maxSockets = + this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. + if (proxyUrl && proxyUrl.hostname) { const agentOptions = { - maxSockets, - keepAlive: this._keepAlive, - proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && { - proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` - })), { host: proxyUrl.hostname, port: proxyUrl.port }) + maxSockets, + keepAlive: this._keepAlive, + proxy: Object.assign( + Object.assign( + {}, + (proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}`, + } + ), + { host: proxyUrl.hostname, port: proxyUrl.port } + ), }; let tunnelAgent; - const overHttps = proxyUrl.protocol === 'https:'; + const overHttps = proxyUrl.protocol === "https:"; if (usingSsl) { - tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; - } - else { - tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + tunnelAgent = overHttps + ? tunnel.httpsOverHttps + : tunnel.httpsOverHttp; + } else { + tunnelAgent = overHttps + ? tunnel.httpOverHttps + : tunnel.httpOverHttp; } agent = tunnelAgent(agentOptions); this._proxyAgent = agent; - } - // if reusing agent across request and tunneling agent isn't assigned create a new agent - if (this._keepAlive && !agent) { + } + // if reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { const options = { keepAlive: this._keepAlive, maxSockets }; - agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + agent = usingSsl + ? new https.Agent(options) + : new http.Agent(options); this._agent = agent; - } - // if not using private agent and tunnel agent isn't setup then use global agent - if (!agent) { + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { agent = usingSsl ? https.globalAgent : http.globalAgent; - } - if (usingSsl && this._ignoreSslError) { + } + if (usingSsl && this._ignoreSslError) { // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options // we have to cast it to any and change it directly agent.options = Object.assign(agent.options || {}, { - rejectUnauthorized: false + rejectUnauthorized: false, }); + } + return agent; } - return agent; - } - _performExponentialBackoff(retryNumber) { - return __awaiter(this, void 0, void 0, function* () { + _performExponentialBackoff(retryNumber) { + return __awaiter(this, void 0, void 0, function* () { retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); - return new Promise(resolve => setTimeout(() => resolve(), ms)); - }); - } - _processResponse(res, options) { - return __awaiter(this, void 0, void 0, function* () { - return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve) => setTimeout(() => resolve(), ms)); + }); + } + _processResponse(res, options) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => + __awaiter(this, void 0, void 0, function* () { const statusCode = res.message.statusCode || 0; const response = { - statusCode, - result: null, - headers: {} + statusCode, + result: null, + headers: {}, }; // not found leads to null obj returned if (statusCode === HttpCodes.NotFound) { - resolve(response); + resolve(response); } // get the result from the body function dateTimeDeserializer(key, value) { - if (typeof value === 'string') { - const a = new Date(value); - if (!isNaN(a.valueOf())) { - return a; - } + if (typeof value === "string") { + const a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; } - return value; + } + return value; } let obj; let contents; try { - contents = yield res.readBody(); - if (contents && contents.length > 0) { - if (options && options.deserializeDates) { - obj = JSON.parse(contents, dateTimeDeserializer); - } - else { - obj = JSON.parse(contents); - } - response.result = obj; + contents = yield res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, dateTimeDeserializer); + } else { + obj = JSON.parse(contents); } - response.headers = res.message.headers; - } - catch (err) { - // Invalid resource (contents not json); leaving result obj null + response.result = obj; + } + response.headers = res.message.headers; + } catch (err) { + // Invalid resource (contents not json); leaving result obj null } // note that 3xx redirects are handled by the http layer. if (statusCode > 299) { - let msg; - // if exception/error in body, attempt to get better error - if (obj && obj.message) { - msg = obj.message; - } - else if (contents && contents.length > 0) { - // it may be the case that the exception is in the body message as string - msg = contents; - } - else { - msg = `Failed request: (${statusCode})`; - } - const err = new HttpClientError(msg, statusCode); - err.result = response.result; - reject(err); + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } else { + msg = `Failed request: (${statusCode})`; + } + const err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } else { + resolve(response); } - else { - resolve(response); - } - })); - }); - } -} -exports.HttpClient = HttpClient; -const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ 9835: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.checkBypass = exports.getProxyUrl = void 0; -function getProxyUrl(reqUrl) { - const usingSsl = reqUrl.protocol === 'https:'; - if (checkBypass(reqUrl)) { - return undefined; - } - const proxyVar = (() => { - if (usingSsl) { - return process.env['https_proxy'] || process.env['HTTPS_PROXY']; + }) + ); + }); } - else { - return process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + exports.HttpClient = HttpClient; + const lowercaseKeys = (obj) => + Object.keys(obj).reduce( + (c, k) => ((c[k.toLowerCase()] = obj[k]), c), + {} + ); + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 9835: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + exports.checkBypass = exports.getProxyUrl = void 0; + function getProxyUrl(reqUrl) { + const usingSsl = reqUrl.protocol === "https:"; + if (checkBypass(reqUrl)) { + return undefined; } - })(); - if (proxyVar) { - return new URL(proxyVar); - } - else { - return undefined; - } -} -exports.getProxyUrl = getProxyUrl; -function checkBypass(reqUrl) { - if (!reqUrl.hostname) { - return false; - } - const reqHost = reqUrl.hostname; - if (isLoopbackAddress(reqHost)) { - return true; - } - const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; - if (!noProxy) { - return false; - } - // Determine the request port - let reqPort; - if (reqUrl.port) { - reqPort = Number(reqUrl.port); - } - else if (reqUrl.protocol === 'http:') { - reqPort = 80; - } - else if (reqUrl.protocol === 'https:') { - reqPort = 443; - } - // Format the request hostname and hostname with port - const upperReqHosts = [reqUrl.hostname.toUpperCase()]; - if (typeof reqPort === 'number') { - upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); - } - // Compare request host against noproxy - for (const upperNoProxyItem of noProxy - .split(',') - .map(x => x.trim().toUpperCase()) - .filter(x => x)) { - if (upperNoProxyItem === '*' || - upperReqHosts.some(x => x === upperNoProxyItem || + const proxyVar = (() => { + if (usingSsl) { + return process.env["https_proxy"] || process.env["HTTPS_PROXY"]; + } else { + return process.env["http_proxy"] || process.env["HTTP_PROXY"]; + } + })(); + if (proxyVar) { + return new URL(proxyVar); + } else { + return undefined; + } + } + exports.getProxyUrl = getProxyUrl; + function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + const reqHost = reqUrl.hostname; + if (isLoopbackAddress(reqHost)) { + return true; + } + const noProxy = + process.env["no_proxy"] || process.env["NO_PROXY"] || ""; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } else if (reqUrl.protocol === "http:") { + reqPort = 80; + } else if (reqUrl.protocol === "https:") { + reqPort = 443; + } + // Format the request hostname and hostname with port + const upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === "number") { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + 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}`)))) { + (upperNoProxyItem.startsWith(".") && + x.endsWith(`${upperNoProxyItem}`)) + ) + ) { return true; + } } - } - return false; -} -exports.checkBypass = checkBypass; -function isLoopbackAddress(host) { - const hostLower = host.toLowerCase(); - return (hostLower === 'localhost' || - hostLower.startsWith('127.') || - hostLower.startsWith('[::1]') || - hostLower.startsWith('[0:0:0:0:0:0:0:1]')); -} -//# sourceMappingURL=proxy.js.map - -/***/ }), - -/***/ 334: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; -const REGEX_IS_INSTALLATION = /^ghs_/; -const REGEX_IS_USER_TO_SERVER = /^ghu_/; -async function auth(token) { - const isApp = token.split(/\./).length === 3; - const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); - const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); - const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; - return { - type: "token", - token: token, - tokenType - }; -} - -/** - * Prefix token for usage in the Authorization header - * - * @param token OAuth token or JSON Web Token - */ -function withAuthorizationPrefix(token) { - if (token.split(/\./).length === 3) { - return `bearer ${token}`; - } - return `token ${token}`; -} - -async function hook(token, request, route, parameters) { - const endpoint = request.endpoint.merge(route, parameters); - endpoint.headers.authorization = withAuthorizationPrefix(token); - return request(endpoint); -} - -const createTokenAuth = function createTokenAuth(token) { - if (!token) { - throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); - } - if (typeof token !== "string") { - throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); - } - token = token.replace(/^(token|bearer) +/i, ""); - return Object.assign(auth.bind(null, token), { - hook: hook.bind(null, token) - }); -}; - -exports.createTokenAuth = createTokenAuth; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 6762: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var universalUserAgent = __nccwpck_require__(5030); -var beforeAfterHook = __nccwpck_require__(3682); -var request = __nccwpck_require__(6234); -var graphql = __nccwpck_require__(8467); -var authToken = __nccwpck_require__(334); - -const VERSION = "4.2.0"; - -class Octokit { - constructor(options = {}) { - const hook = new beforeAfterHook.Collection(); - const requestDefaults = { - baseUrl: request.request.endpoint.DEFAULTS.baseUrl, - headers: {}, - request: Object.assign({}, options.request, { - // @ts-ignore internal usage only, no need to type - hook: hook.bind(null, "request") - }), - mediaType: { - previews: [], - format: "" + return false; } - }; // prepend default user agent with `options.userAgent` if set + exports.checkBypass = checkBypass; + function isLoopbackAddress(host) { + const hostLower = host.toLowerCase(); + return ( + hostLower === "localhost" || + hostLower.startsWith("127.") || + hostLower.startsWith("[::1]") || + hostLower.startsWith("[0:0:0:0:0:0:0:1]") + ); + } + //# sourceMappingURL=proxy.js.map - requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); + /***/ + }, - if (options.baseUrl) { - requestDefaults.baseUrl = options.baseUrl; - } + /***/ 334: /***/ (__unused_webpack_module, exports) => { + "use strict"; - if (options.previews) { - requestDefaults.mediaType.previews = options.previews; - } + Object.defineProperty(exports, "__esModule", { value: true }); - if (options.timeZone) { - requestDefaults.headers["time-zone"] = options.timeZone; - } + const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; + const REGEX_IS_INSTALLATION = /^ghs_/; + const REGEX_IS_USER_TO_SERVER = /^ghu_/; + async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = + REGEX_IS_INSTALLATION_LEGACY.test(token) || + REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp + ? "app" + : isInstallation + ? "installation" + : isUserToServer + ? "user-to-server" + : "oauth"; + return { + type: "token", + token: token, + tokenType, + }; + } - this.request = request.request.defaults(requestDefaults); - this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); - this.log = Object.assign({ - debug: () => {}, - info: () => {}, - warn: console.warn.bind(console), - error: console.error.bind(console) - }, options.log); - this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance - // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. - // (2) If only `options.auth` is set, use the default token authentication strategy. - // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. - // TODO: type `options.auth` based on `options.authStrategy`. + /** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ + function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + return `token ${token}`; + } - if (!options.authStrategy) { - if (!options.auth) { - // (1) - this.auth = async () => ({ - type: "unauthenticated" + async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); + } + + const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error( + "[@octokit/auth-token] No token passed to createTokenAuth" + ); + } + if (typeof token !== "string") { + throw new Error( + "[@octokit/auth-token] Token passed to createTokenAuth is not a string" + ); + } + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token), }); - } else { - // (2) - const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ + }; - hook.wrap("request", auth.hook); - this.auth = auth; + exports.createTokenAuth = createTokenAuth; + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 6762: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + var universalUserAgent = __nccwpck_require__(5030); + var beforeAfterHook = __nccwpck_require__(3682); + var request = __nccwpck_require__(6234); + var graphql = __nccwpck_require__(8467); + var authToken = __nccwpck_require__(334); + + const VERSION = "4.2.0"; + + class Octokit { + constructor(options = {}) { + const hook = new beforeAfterHook.Collection(); + const requestDefaults = { + baseUrl: request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request"), + }), + mediaType: { + previews: [], + format: "", + }, + }; // prepend default user agent with `options.userAgent` if set + + requestDefaults.headers["user-agent"] = [ + options.userAgent, + `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`, + ] + .filter(Boolean) + .join(" "); + + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + + this.request = request.request.defaults(requestDefaults); + this.graphql = graphql + .withCustomRequest(this.request) + .defaults(requestDefaults); + this.log = Object.assign( + { + debug: () => {}, + info: () => {}, + warn: console.warn.bind(console), + error: console.error.bind(console), + }, + options.log + ); + this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. + + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated", + }); + } else { + // (2) + const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { authStrategy, ...otherOptions } = options; + const auth = authStrategy( + Object.assign( + { + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions, + }, + options.auth + ) + ); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } // apply plugins + // https://stackoverflow.com/a/16345172 + + const classConstructor = this.constructor; + classConstructor.plugins.forEach((plugin) => { + Object.assign(this, plugin(this, options)); + }); + } + + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + + super( + Object.assign( + {}, + defaults, + options, + options.userAgent && defaults.userAgent + ? { + userAgent: `${options.userAgent} ${defaults.userAgent}`, + } + : null + ) + ); + } + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + + static plugin(...newPlugins) { + var _a; + + const currentPlugins = this.plugins; + const NewOctokit = + ((_a = class extends this {}), + (_a.plugins = currentPlugins.concat( + newPlugins.filter((plugin) => !currentPlugins.includes(plugin)) + )), + _a); + return NewOctokit; + } } - } else { + Octokit.VERSION = VERSION; + Octokit.plugins = []; + + exports.Octokit = Octokit; + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 9440: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + var isPlainObject = __nccwpck_require__(3287); + var universalUserAgent = __nccwpck_require__(5030); + + function lowercaseKeys(object) { + if (!object) { + return {}; + } + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); + } + + function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach((key) => { + if (isPlainObject.isPlainObject(options[key])) { + if (!(key in defaults)) + Object.assign(result, { + [key]: options[key], + }); + else result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { + [key]: options[key], + }); + } + }); + return result; + } + + function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; + } + } + return obj; + } + + function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign( + url + ? { + method, + url, + } + : { + url: method, + }, + options + ); + } else { + options = Object.assign({}, route); + } + // lowercase header names before merging with defaults to avoid duplicates + options.headers = lowercaseKeys(options.headers); + // remove properties with undefined values before merging + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); + // mediaType.previews arrays are merged, instead of overwritten + 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 (names.length === 0) { + return url; + } + return ( + url + + separator + + names + .map((name) => { + if (name === "q") { + return ( + "q=" + + parameters.q.split("+").map(encodeURIComponent).join("+") + ); + } + return `${name}=${encodeURIComponent(parameters[name])}`; + }) + .join("&") + ); + } + + const urlVariableRegex = /\{[^}]+\}/g; + function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); + } + function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + if (!matches) { + return []; + } + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); + } + + function omit(object, keysToOmit) { + return Object.keys(object) + .filter((option) => !keysToOmit.includes(option)) + .reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); + } + + // Based on https://github.com/bramstein/url-template, licensed under BSD + // TODO: create separate package. + // + // Copyright (c) 2012-2014, Bram Stein + // All rights reserved. + // Redistribution and use in source and binary forms, with or without + // modification, are permitted provided that the following conditions + // are met: + // 1. Redistributions of source code must retain the above copyright + // notice, this list of conditions and the following disclaimer. + // 2. Redistributions in binary form must reproduce the above copyright + // notice, this list of conditions and the following disclaimer in the + // documentation and/or other materials provided with the distribution. + // 3. The name of the author may not be used to endorse or promote products + // derived from this software without specific prior written permission. + // THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED + // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + // EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + // OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + /* istanbul ignore file */ + function encodeReserved(str) { + return str + .split(/(%[0-9A-Fa-f]{2})/g) + .map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + return part; + }) + .join(""); + } + function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); + } + function encodeValue(operator, value, key) { + value = + operator === "+" || operator === "#" + ? encodeReserved(value) + : encodeUnreserved(value); + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } + } + function isDefined(value) { + return value !== undefined && value !== null; + } + function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; + } + function getValues(context, operator, key, modifier) { + var value = context[key], + result = []; + if (isDefined(value) && value !== "") { + if ( + typeof value === "string" || + typeof value === "number" || + typeof value === "boolean" + ) { + value = value.toString(); + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + result.push( + encodeValue(operator, value, isKeyOperator(operator) ? key : "") + ); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push( + encodeValue( + operator, + value, + 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 (value) { + tmp.push(encodeValue(operator, value)); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + return result; + } + function parseUrl(template) { + return { + expand: expand.bind(null, template), + }; + } + function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace( + /\{([^\{\}]+)\}|([^\{\}]+)/g, + function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push( + getValues(context, operator, tmp[1], tmp[2] || tmp[3]) + ); + }); + if (operator && operator !== "+") { + var separator = ","; + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + return ( + (values.length !== 0 ? operator : "") + values.join(separator) + ); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + } + ); + } + + function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); + // replace :varname with {varname} to make it RFC 6570 compatible + 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", + ]); + // extract variable names from URL to calculate remaining variables later + 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) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept + .split(/,/) + .map((preview) => + preview.replace( + /application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, + `application/vnd$1$2.${options.mediaType.format}` + ) + ) + .join(","); + } + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = + headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader + .concat(options.mediaType.previews) + .map((preview) => { + const format = options.mediaType.format + ? `.${options.mediaType.format}` + : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }) + .join(","); + } + } + // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + 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; + } + } + } + // default content-type for JSON if body is set + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } + // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } + // Only return body/request keys if present + return Object.assign( + { + method, + url, + headers, + }, + typeof body !== "undefined" + ? { + body, + } + : null, + options.request + ? { + request: options.request, + } + : null + ); + } + + function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); + } + + function withDefaults(oldDefaults, newDefaults) { + const 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, + }); + } + + const VERSION = "7.0.5"; + + const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; + // DEFAULTS has all properties set that EndpointOptions has, except url. + // So we use RequestParameters and add method as additional required property. + const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent, + }, + mediaType: { + format: "", + previews: [], + }, + }; + + const endpoint = withDefaults(null, DEFAULTS); + + exports.endpoint = endpoint; + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 8467: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + var request = __nccwpck_require__(6234); + var universalUserAgent = __nccwpck_require__(5030); + + const VERSION = "5.0.5"; + + function _buildMessageForResponseErrors(data) { + return ( + `Request failed due to following response errors:\n` + + data.errors.map((e) => ` - ${e.message}`).join("\n") + ); + } + class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; + // Expose the errors and response data in their shorthand properties. + this.errors = response.errors; + this.data = response.data; + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + } + + const NON_VARIABLE_OPTIONS = [ + "method", + "baseUrl", + "url", + "headers", + "request", + "query", + "mediaType", + ]; + const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; + const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; + function graphql(request, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject( + new Error( + `[@octokit/graphql] "query" cannot be used as variable name` + ) + ); + } + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue; + return Promise.reject( + new Error( + `[@octokit/graphql] "${key}" cannot be used as variable name` + ) + ); + } + } + const parsedOptions = + typeof query === "string" + ? Object.assign( + { + query, + }, + options + ) + : query; + const requestOptions = Object.keys(parsedOptions).reduce( + (result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + if (!result.variables) { + result.variables = {}; + } + result.variables[key] = parsedOptions[key]; + return result; + }, + {} + ); + // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + const baseUrl = + parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace( + GHES_V3_SUFFIX_REGEX, + "/api/graphql" + ); + } + return request(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 withDefaults(request, newDefaults) { + const newRequest = request.defaults(newDefaults); + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: newRequest.endpoint, + }); + } + + const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}`, + }, + method: "POST", + url: "/graphql", + }); + function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql", + }); + } + + exports.GraphqlResponseError = GraphqlResponseError; + exports.graphql = graphql$1; + exports.withCustomRequest = withCustomRequest; + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 4193: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + const VERSION = "6.0.0"; + + /** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ + function normalizePaginatedListResponse(response) { + // endpoints can respond with 204 if repository is empty + if (!response.data) { + return { + ...response, + data: [], + }; + } + const responseNeedsNormalization = + "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; + // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + response.data.total_count = totalCount; + return response; + } + + function iterator(octokit, route, parameters) { + const options = + typeof route === "function" + ? route.endpoint(parameters) + : octokit.request.endpoint(route, parameters); + const requestMethod = + typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) + return { + done: true, + }; + try { + const response = await requestMethod({ + method, + url, + headers, + }); + const normalizedResponse = + normalizePaginatedListResponse(response); + // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + url = ((normalizedResponse.headers.link || "").match( + /<([^>]+)>;\s*rel="next"/ + ) || [])[1]; + return { + value: normalizedResponse, + }; + } catch (error) { + if (error.status !== 409) throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [], + }, + }; + } + }, + }), + }; + } + + function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + return gather( + octokit, + [], + iterator(octokit, route, parameters)[Symbol.asyncIterator](), + mapFn + ); + } + function gather(octokit, results, iterator, mapFn) { + return iterator.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, iterator, mapFn); + }); + } + + const composePaginateRest = Object.assign(paginate, { + iterator, + }); + + const paginatingEndpoints = [ + "GET /app/hook/deliveries", + "GET /app/installations", + "GET /enterprises/{enterprise}/actions/runner-groups", + "GET /enterprises/{enterprise}/dependabot/alerts", + "GET /enterprises/{enterprise}/secret-scanning/alerts", + "GET /events", + "GET /gists", + "GET /gists/public", + "GET /gists/starred", + "GET /gists/{gist_id}/comments", + "GET /gists/{gist_id}/commits", + "GET /gists/{gist_id}/forks", + "GET /installation/repositories", + "GET /issues", + "GET /licenses", + "GET /marketplace_listing/plans", + "GET /marketplace_listing/plans/{plan_id}/accounts", + "GET /marketplace_listing/stubbed/plans", + "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", + "GET /networks/{owner}/{repo}/events", + "GET /notifications", + "GET /organizations", + "GET /orgs/{org}/actions/cache/usage-by-repository", + "GET /orgs/{org}/actions/permissions/repositories", + "GET /orgs/{org}/actions/required_workflows", + "GET /orgs/{org}/actions/runner-groups", + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", + "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", + "GET /orgs/{org}/actions/runners", + "GET /orgs/{org}/actions/secrets", + "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", + "GET /orgs/{org}/actions/variables", + "GET /orgs/{org}/actions/variables/{name}/repositories", + "GET /orgs/{org}/blocks", + "GET /orgs/{org}/code-scanning/alerts", + "GET /orgs/{org}/codespaces", + "GET /orgs/{org}/codespaces/secrets", + "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories", + "GET /orgs/{org}/dependabot/alerts", + "GET /orgs/{org}/dependabot/secrets", + "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", + "GET /orgs/{org}/events", + "GET /orgs/{org}/failed_invitations", + "GET /orgs/{org}/hooks", + "GET /orgs/{org}/hooks/{hook_id}/deliveries", + "GET /orgs/{org}/installations", + "GET /orgs/{org}/invitations", + "GET /orgs/{org}/invitations/{invitation_id}/teams", + "GET /orgs/{org}/issues", + "GET /orgs/{org}/members", + "GET /orgs/{org}/members/{username}/codespaces", + "GET /orgs/{org}/migrations", + "GET /orgs/{org}/migrations/{migration_id}/repositories", + "GET /orgs/{org}/outside_collaborators", + "GET /orgs/{org}/packages", + "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", + "GET /orgs/{org}/projects", + "GET /orgs/{org}/public_members", + "GET /orgs/{org}/repos", + "GET /orgs/{org}/secret-scanning/alerts", + "GET /orgs/{org}/teams", + "GET /orgs/{org}/teams/{team_slug}/discussions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", + "GET /orgs/{org}/teams/{team_slug}/invitations", + "GET /orgs/{org}/teams/{team_slug}/members", + "GET /orgs/{org}/teams/{team_slug}/projects", + "GET /orgs/{org}/teams/{team_slug}/repos", + "GET /orgs/{org}/teams/{team_slug}/teams", + "GET /projects/columns/{column_id}/cards", + "GET /projects/{project_id}/collaborators", + "GET /projects/{project_id}/columns", + "GET /repos/{org}/{repo}/actions/required_workflows", + "GET /repos/{owner}/{repo}/actions/artifacts", + "GET /repos/{owner}/{repo}/actions/caches", + "GET /repos/{owner}/{repo}/actions/required_workflows/{required_workflow_id_for_repo}/runs", + "GET /repos/{owner}/{repo}/actions/runners", + "GET /repos/{owner}/{repo}/actions/runs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", + "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", + "GET /repos/{owner}/{repo}/actions/secrets", + "GET /repos/{owner}/{repo}/actions/variables", + "GET /repos/{owner}/{repo}/actions/workflows", + "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", + "GET /repos/{owner}/{repo}/assignees", + "GET /repos/{owner}/{repo}/branches", + "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", + "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", + "GET /repos/{owner}/{repo}/code-scanning/alerts", + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + "GET /repos/{owner}/{repo}/code-scanning/analyses", + "GET /repos/{owner}/{repo}/codespaces", + "GET /repos/{owner}/{repo}/codespaces/devcontainers", + "GET /repos/{owner}/{repo}/codespaces/secrets", + "GET /repos/{owner}/{repo}/collaborators", + "GET /repos/{owner}/{repo}/comments", + "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/commits", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", + "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", + "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", + "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", + "GET /repos/{owner}/{repo}/commits/{ref}/status", + "GET /repos/{owner}/{repo}/commits/{ref}/statuses", + "GET /repos/{owner}/{repo}/contributors", + "GET /repos/{owner}/{repo}/dependabot/alerts", + "GET /repos/{owner}/{repo}/dependabot/secrets", + "GET /repos/{owner}/{repo}/deployments", + "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", + "GET /repos/{owner}/{repo}/environments", + "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", + "GET /repos/{owner}/{repo}/events", + "GET /repos/{owner}/{repo}/forks", + "GET /repos/{owner}/{repo}/hooks", + "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", + "GET /repos/{owner}/{repo}/invitations", + "GET /repos/{owner}/{repo}/issues", + "GET /repos/{owner}/{repo}/issues/comments", + "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/issues/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", + "GET /repos/{owner}/{repo}/issues/{issue_number}/events", + "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", + "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", + "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", + "GET /repos/{owner}/{repo}/keys", + "GET /repos/{owner}/{repo}/labels", + "GET /repos/{owner}/{repo}/milestones", + "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", + "GET /repos/{owner}/{repo}/notifications", + "GET /repos/{owner}/{repo}/pages/builds", + "GET /repos/{owner}/{repo}/projects", + "GET /repos/{owner}/{repo}/pulls", + "GET /repos/{owner}/{repo}/pulls/comments", + "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", + "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", + "GET /repos/{owner}/{repo}/releases", + "GET /repos/{owner}/{repo}/releases/{release_id}/assets", + "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", + "GET /repos/{owner}/{repo}/secret-scanning/alerts", + "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", + "GET /repos/{owner}/{repo}/stargazers", + "GET /repos/{owner}/{repo}/subscribers", + "GET /repos/{owner}/{repo}/tags", + "GET /repos/{owner}/{repo}/teams", + "GET /repos/{owner}/{repo}/topics", + "GET /repositories", + "GET /repositories/{repository_id}/environments/{environment_name}/secrets", + "GET /repositories/{repository_id}/environments/{environment_name}/variables", + "GET /search/code", + "GET /search/commits", + "GET /search/issues", + "GET /search/labels", + "GET /search/repositories", + "GET /search/topics", + "GET /search/users", + "GET /teams/{team_id}/discussions", + "GET /teams/{team_id}/discussions/{discussion_number}/comments", + "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", + "GET /teams/{team_id}/discussions/{discussion_number}/reactions", + "GET /teams/{team_id}/invitations", + "GET /teams/{team_id}/members", + "GET /teams/{team_id}/projects", + "GET /teams/{team_id}/repos", + "GET /teams/{team_id}/teams", + "GET /user/blocks", + "GET /user/codespaces", + "GET /user/codespaces/secrets", + "GET /user/emails", + "GET /user/followers", + "GET /user/following", + "GET /user/gpg_keys", + "GET /user/installations", + "GET /user/installations/{installation_id}/repositories", + "GET /user/issues", + "GET /user/keys", + "GET /user/marketplace_purchases", + "GET /user/marketplace_purchases/stubbed", + "GET /user/memberships/orgs", + "GET /user/migrations", + "GET /user/migrations/{migration_id}/repositories", + "GET /user/orgs", + "GET /user/packages", + "GET /user/packages/{package_type}/{package_name}/versions", + "GET /user/public_emails", + "GET /user/repos", + "GET /user/repository_invitations", + "GET /user/ssh_signing_keys", + "GET /user/starred", + "GET /user/subscriptions", + "GET /user/teams", + "GET /users", + "GET /users/{username}/events", + "GET /users/{username}/events/orgs/{org}", + "GET /users/{username}/events/public", + "GET /users/{username}/followers", + "GET /users/{username}/following", + "GET /users/{username}/gists", + "GET /users/{username}/gpg_keys", + "GET /users/{username}/keys", + "GET /users/{username}/orgs", + "GET /users/{username}/packages", + "GET /users/{username}/projects", + "GET /users/{username}/received_events", + "GET /users/{username}/received_events/public", + "GET /users/{username}/repos", + "GET /users/{username}/ssh_signing_keys", + "GET /users/{username}/starred", + "GET /users/{username}/subscriptions", + ]; + + function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } + } + + /** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit), + }), + }; + } + paginateRest.VERSION = VERSION; + + exports.composePaginateRest = composePaginateRest; + exports.isPaginatingEndpoint = isPaginatingEndpoint; + exports.paginateRest = paginateRest; + exports.paginatingEndpoints = paginatingEndpoints; + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 8883: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + const VERSION = "1.0.4"; + + /** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + + function requestLog(octokit) { + octokit.hook.wrap("request", (request, options) => { + octokit.log.debug("request", options); + const start = Date.now(); + const requestOptions = octokit.request.endpoint.parse(options); + const path = requestOptions.url.replace(options.baseUrl, ""); + return request(options) + .then((response) => { + octokit.log.info( + `${requestOptions.method} ${path} - ${response.status} in ${ + Date.now() - start + }ms` + ); + return response; + }) + .catch((error) => { + octokit.log.info( + `${requestOptions.method} ${path} - ${error.status} in ${ + Date.now() - start + }ms` + ); + throw error; + }); + }); + } + requestLog.VERSION = VERSION; + + exports.requestLog = requestLog; + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 3044: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + 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}", + ], + addSelectedRepoToRequiredWorkflow: [ + "PUT /orgs/{org}/actions/required_workflows/{required_workflow_id}/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"], + createRequiredWorkflow: [ + "POST /orgs/{org}/actions/required_workflows", + ], + 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}", + ], + deleteRequiredWorkflow: [ + "DELETE /orgs/{org}/actions/required_workflows/{required_workflow_id}", + ], + 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", + ], + 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}", + ], + 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"], + }, + ], + getRepoPublicKey: [ + "GET /repos/{owner}/{repo}/actions/secrets/public-key", + ], + getRepoRequiredWorkflow: [ + "GET /repos/{org}/{repo}/actions/required_workflows/{required_workflow_id_for_repo}", + ], + getRepoRequiredWorkflowUsage: [ + "GET /repos/{org}/{repo}/actions/required_workflows/{required_workflow_id_for_repo}/timing", + ], + getRepoSecret: [ + "GET /repos/{owner}/{repo}/actions/secrets/{secret_name}", + ], + getRepoVariable: [ + "GET /repos/{owner}/{repo}/actions/variables/{name}", + ], + getRequiredWorkflow: [ + "GET /orgs/{org}/actions/required_workflows/{required_workflow_id}", + ], + 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"], + listRepoRequiredWorkflows: [ + "GET /repos/{org}/{repo}/actions/required_workflows", + ], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRequiredWorkflowRuns: [ + "GET /repos/{owner}/{repo}/actions/required_workflows/{required_workflow_id_for_repo}/runs", + ], + listRequiredWorkflows: ["GET /orgs/{org}/actions/required_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", + ], + listSelectedRepositoriesRequiredWorkflow: [ + "GET /orgs/{org}/actions/required_workflows/{required_workflow_id}/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}", + ], + removeSelectedRepoFromRequiredWorkflow: [ + "DELETE /orgs/{org}/actions/required_workflows/{required_workflow_id}/repositories/{repository_id}", + ], + 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", + ], + 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", + ], + setSelectedReposToRequiredWorkflow: [ + "PUT /orgs/{org}/actions/required_workflows/{required_workflow_id}/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}", + ], + updateRequiredWorkflow: [ + "PATCH /orgs/{org}/actions/required_workflows/{required_workflow_id}", + ], + }, + 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", + ], + 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", + ], + 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}", + ], + getSarif: [ + "GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}", + ], + listAlertInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + ], + listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listAlertsInstances: [ + "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", + {}, + { + renamed: ["codeScanning", "listAlertInstances"], + }, + ], + listCodeqlDatabases: [ + "GET /repos/{owner}/{repo}/code-scanning/codeql/databases", + ], + listRecentAnalyses: [ + "GET /repos/{owner}/{repo}/code-scanning/analyses", + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", + ], + 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}", + ], + 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", + ], + setCodespacesBilling: ["PUT /orgs/{org}/codespaces/billing"], + 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}", + ], + }, + 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}", + ], + }, + emojis: { + get: ["GET /emojis"], + }, + enterpriseAdmin: { + addCustomLabelsToSelfHostedRunnerForEnterprise: [ + "POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels", + ], + enableSelectedOrganizationGithubActionsEnterprise: [ + "PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}", + ], + listLabelsForSelfHostedRunnerForEnterprise: [ + "GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels", + ], + }, + 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"], + 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"], + getImportStatus: ["GET /repos/{owner}/{repo}/import"], + getLargeFiles: ["GET /repos/{owner}/{repo}/import/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}", + ], + setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: ["PUT /repos/{owner}/{repo}/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"], + }, + orgs: { + addSecurityManagerTeam: [ + "PUT /orgs/{org}/security-managers/teams/{team_slug}", + ], + 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}", + ], + createInvitation: ["POST /orgs/{org}/invitations"], + createWebhook: ["POST /orgs/{org}/hooks"], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + enableOrDisableSecurityProductOnAllOrgRepos: [ + "POST /orgs/{org}/{security_product}/{enablement}", + ], + get: ["GET /orgs/{org}"], + getMembershipForAuthenticatedUser: [ + "GET /user/memberships/orgs/{org}", + ], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + 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"], + 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"], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + 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"], + 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}", + ], + 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}", + ], + 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}", + ], + 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", + }, + ], + 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", + ], + 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}", + ], + createPagesDeployment: [ + "POST /repos/{owner}/{repo}/pages/deployment", + ], + createPagesSite: ["POST /repos/{owner}/{repo}/pages"], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + 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}", + ], + 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}", + ], + 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", + ], + disableLfsForRepo: ["DELETE /repos/{owner}/{repo}/lfs"], + 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", + ], + enableLfsForRepo: ["PUT /repos/{owner}/{repo}/lfs"], + 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", + ], + 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", + ], + 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", + ], + 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"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_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}"], + 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}", + ], + 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"], + 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}", + ], + 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}", + ], + 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}", + ], + getSecurityAnalysisSettingsForEnterprise: [ + "GET /enterprises/{enterprise}/code_security_and_analysis", + ], + 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", + ], + patchSecurityAnalysisSettingsForEnterprise: [ + "PATCH /enterprises/{enterprise}/code_security_and_analysis", + ], + postSecurityProductEnablementForEnterprise: [ + "POST /enterprises/{enterprise}/{security_product}/{enablement}", + ], + updateAlert: [ + "PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}", + ], + }, + 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"], + 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}", + ], + 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"], + 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"], + }, + }; + + const VERSION = "7.0.1"; + + function endpointsToMethods(octokit, endpointsMap) { + const newMethods = {}; + for (const [scope, endpoints] of Object.entries(endpointsMap)) { + 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 (!newMethods[scope]) { + newMethods[scope] = {}; + } + const scopeMethods = newMethods[scope]; + if (decorations) { + scopeMethods[methodName] = decorate( + octokit, + scope, + methodName, + endpointDefaults, + decorations + ); + continue; + } + scopeMethods[methodName] = + octokit.request.defaults(endpointDefaults); + } + } + return newMethods; + } + function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + /* istanbul ignore next */ + function withDecorations(...args) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + let options = requestWithDefaults.endpoint.merge(...args); + // There are currently no other decorations than `.mapToData` + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: undefined, + }); + 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) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + const options = requestWithDefaults.endpoint.merge(...args); + for (const [name, alias] of Object.entries( + decorations.renamedParameters + )) { + if (name in options) { + octokit.log.warn( + `"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead` + ); + if (!(alias in options)) { + options[alias] = options[name]; + } + delete options[name]; + } + } + return requestWithDefaults(options); + } + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + return requestWithDefaults(...args); + } + return Object.assign(withDecorations, requestWithDefaults); + } + + function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit, Endpoints); + return { + rest: api, + }; + } + restEndpointMethods.VERSION = VERSION; + function legacyRestEndpointMethods(octokit) { + const api = endpointsToMethods(octokit, Endpoints); + return { + ...api, + rest: api, + }; + } + legacyRestEndpointMethods.VERSION = VERSION; + + exports.legacyRestEndpointMethods = legacyRestEndpointMethods; + exports.restEndpointMethods = restEndpointMethods; + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 537: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + function _interopDefault(ex) { + return ex && typeof ex === "object" && "default" in ex + ? ex["default"] + : ex; + } + + var deprecation = __nccwpck_require__(8932); + var once = _interopDefault(__nccwpck_require__(1223)); + + const logOnceCode = once((deprecation) => console.warn(deprecation)); + const logOnceHeaders = once((deprecation) => console.warn(deprecation)); + /** + * Error with extra properties to help with debugging + */ + class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); + // Maintains proper stack trace (only available on V8) + /* istanbul ignore next */ + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + this.name = "HttpError"; + this.status = statusCode; + let headers; + if ("headers" in options && typeof options.headers !== "undefined") { + headers = options.headers; + } + if ("response" in options) { + this.response = options.response; + headers = options.response.headers; + } + // redact request credentials without mutating original request options + const requestCopy = Object.assign({}, options.request); + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace( + / .*$/, + " [REDACTED]" + ), + }); + } + requestCopy.url = requestCopy.url + // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") + // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; + // deprecations + Object.defineProperty(this, "code", { + get() { + logOnceCode( + new deprecation.Deprecation( + "[@octokit/request-error] `error.code` is deprecated, use `error.status`." + ) + ); + return statusCode; + }, + }); + Object.defineProperty(this, "headers", { + get() { + logOnceHeaders( + new deprecation.Deprecation( + "[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`." + ) + ); + return headers || {}; + }, + }); + } + } + + exports.RequestError = RequestError; + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 6234: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + function _interopDefault(ex) { + return ex && typeof ex === "object" && "default" in ex + ? ex["default"] + : ex; + } + + var endpoint = __nccwpck_require__(9440); + var universalUserAgent = __nccwpck_require__(5030); + var isPlainObject = __nccwpck_require__(3287); + var nodeFetch = _interopDefault(__nccwpck_require__(467)); + var requestError = __nccwpck_require__(537); + + const VERSION = "6.2.3"; + + function getBufferResponse(response) { + return response.arrayBuffer(); + } + + function fetchWrapper(requestOptions) { + const log = + requestOptions.request && requestOptions.request.log + ? requestOptions.request.log + : console; + if ( + isPlainObject.isPlainObject(requestOptions.body) || + Array.isArray(requestOptions.body) + ) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + let headers = {}; + let status; + let url; + const fetch = + (requestOptions.request && requestOptions.request.fetch) || + globalThis.fetch || + /* istanbul ignore next */ nodeFetch; + return fetch( + requestOptions.url, + Object.assign( + { + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect, + }, + // `requestOptions.request.agent` type is incompatible + // see https://github.com/octokit/types.ts/pull/264 + requestOptions.request + ) + ) + .then(async (response) => { + url = response.url; + status = response.status; + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + if ("deprecation" in headers) { + const matches = + headers.link && + headers.link.match(/<([^>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn( + `[@octokit/request] "${requestOptions.method} ${ + requestOptions.url + }" is deprecated. It is scheduled to be removed on ${ + headers.sunset + }${deprecationLink ? `. See ${deprecationLink}` : ""}` + ); + } + if (status === 204 || status === 205) { + return; + } + // GitHub API returns 200 for HEAD requests + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + throw new requestError.RequestError(response.statusText, status, { + response: { + url, + status, + headers, + data: undefined, + }, + request: requestOptions, + }); + } + if (status === 304) { + throw new requestError.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.RequestError( + toErrorMessage(data), + status, + { + response: { + url, + status, + headers, + data, + }, + request: requestOptions, + } + ); + throw error; + } + return getResponseData(response); + }) + .then((data) => { + return { + status, + url, + headers, + data, + }; + }) + .catch((error) => { + if (error instanceof requestError.RequestError) throw error; + else if (error.name === "AbortError") throw error; + throw new requestError.RequestError(error.message, 500, { + request: requestOptions, + }); + }); + } + async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + if (/application\/json/.test(contentType)) { + return response.json(); + } + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + return getBufferResponse(response); + } + function toErrorMessage(data) { + if (typeof data === "string") return data; + // istanbul ignore else - just in case + if ("message" in data) { + if (Array.isArray(data.errors)) { + return `${data.message}: ${data.errors + .map(JSON.stringify) + .join(", ")}`; + } + return data.message; + } + // istanbul ignore next - just in case + return `Unknown error: ${JSON.stringify(data)}`; + } + + function 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 = (route, parameters) => { + return fetchWrapper( + endpoint.parse(endpoint.merge(route, parameters)) + ); + }; + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint), + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint), + }); + } + + const request = withDefaults(endpoint.endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}`, + }, + }); + + exports.request = request; + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 5375: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + var core = __nccwpck_require__(6762); + var pluginRequestLog = __nccwpck_require__(8883); + var pluginPaginateRest = __nccwpck_require__(4193); + var pluginRestEndpointMethods = __nccwpck_require__(3044); + + const VERSION = "19.0.7"; + + const Octokit = core.Octokit.plugin( + pluginRequestLog.requestLog, + pluginRestEndpointMethods.legacyRestEndpointMethods, + pluginPaginateRest.paginateRest + ).defaults({ + userAgent: `octokit-rest.js/${VERSION}`, + }); + + exports.Octokit = Octokit; + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 1659: /***/ (module, exports, __nccwpck_require__) => { + "use strict"; + /** + * @author Toru Nagashima + * See LICENSE file in root directory for full license. + */ + + Object.defineProperty(exports, "__esModule", { value: true }); + + var eventTargetShim = __nccwpck_require__(4697); + + /** + * The signal class. + * @see https://dom.spec.whatwg.org/#abortsignal + */ + class AbortSignal extends eventTargetShim.EventTarget { + /** + * AbortSignal cannot be constructed directly. + */ + constructor() { + super(); + throw new TypeError("AbortSignal cannot be constructed directly"); + } + /** + * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise. + */ + get aborted() { + const aborted = abortedFlags.get(this); + if (typeof aborted !== "boolean") { + throw new TypeError( + `Expected 'this' to be an 'AbortSignal' object, but got ${ + this === null ? "null" : typeof this + }` + ); + } + return aborted; + } + } + eventTargetShim.defineEventAttribute(AbortSignal.prototype, "abort"); + /** + * Create an AbortSignal object. + */ + function createAbortSignal() { + const signal = Object.create(AbortSignal.prototype); + eventTargetShim.EventTarget.call(signal); + abortedFlags.set(signal, false); + return signal; + } + /** + * Abort a given signal. + */ + function abortSignal(signal) { + if (abortedFlags.get(signal) !== false) { + return; + } + abortedFlags.set(signal, true); + signal.dispatchEvent({ type: "abort" }); + } + /** + * Aborted flag for each instances. + */ + const abortedFlags = new WeakMap(); + // Properties should be enumerable. + Object.defineProperties(AbortSignal.prototype, { + aborted: { enumerable: true }, + }); + // `toString()` should return `"[object AbortSignal]"` + if ( + typeof Symbol === "function" && + typeof Symbol.toStringTag === "symbol" + ) { + Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, { + configurable: true, + value: "AbortSignal", + }); + } + + /** + * The AbortController. + * @see https://dom.spec.whatwg.org/#abortcontroller + */ + class AbortController { + /** + * Initialize this controller. + */ + constructor() { + signals.set(this, createAbortSignal()); + } + /** + * Returns the `AbortSignal` object associated with this object. + */ + get signal() { + return getSignal(this); + } + /** + * Abort and signal to any observers that the associated activity is to be aborted. + */ + abort() { + abortSignal(getSignal(this)); + } + } + /** + * Associated signals. + */ + const signals = new WeakMap(); + /** + * Get the associated signal of a given controller. + */ + function getSignal(controller) { + const signal = signals.get(controller); + if (signal == null) { + throw new TypeError( + `Expected 'this' to be an 'AbortController' object, but got ${ + controller === null ? "null" : typeof controller + }` + ); + } + return signal; + } + // Properties should be enumerable. + Object.defineProperties(AbortController.prototype, { + signal: { enumerable: true }, + abort: { enumerable: true }, + }); + if ( + typeof Symbol === "function" && + typeof Symbol.toStringTag === "symbol" + ) { + Object.defineProperty(AbortController.prototype, Symbol.toStringTag, { + configurable: true, + value: "AbortController", + }); + } + + exports.AbortController = AbortController; + exports.AbortSignal = AbortSignal; + exports["default"] = AbortController; + + module.exports = AbortController; + module.exports.AbortController = module.exports["default"] = + AbortController; + module.exports.AbortSignal = AbortSignal; + //# sourceMappingURL=abort-controller.js.map + + /***/ + }, + + /***/ 4623: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + module.exports = __nccwpck_require__(5006); + module.exports.HttpsAgent = __nccwpck_require__(5500); + module.exports.constants = __nccwpck_require__(7757); + + /***/ + }, + + /***/ 5006: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const OriginalAgent = __nccwpck_require__(3685).Agent; + const ms = __nccwpck_require__(845); + const debug = __nccwpck_require__(3837).debuglog("agentkeepalive"); const { - authStrategy, - ...otherOptions - } = options; - const auth = authStrategy(Object.assign({ - request: this.request, - log: this.log, - // we pass the current octokit instance as well as its constructor options - // to allow for authentication strategies that return a new octokit instance - // that shares the same internal state as the current one. The original - // requirement for this was the "event-octokit" authentication strategy - // of https://github.com/probot/octokit-auth-probot. - octokit: this, - octokitOptions: otherOptions - }, options.auth)); // @ts-ignore ¯\_(ツ)_/¯ + INIT_SOCKET, + CURRENT_ID, + CREATE_ID, + SOCKET_CREATED_TIME, + SOCKET_NAME, + SOCKET_REQUEST_COUNT, + SOCKET_REQUEST_FINISHED_COUNT, + } = __nccwpck_require__(7757); - hook.wrap("request", auth.hook); - this.auth = auth; - } // apply plugins - // https://stackoverflow.com/a/16345172 + // OriginalAgent come from + // - https://github.com/nodejs/node/blob/v8.12.0/lib/_http_agent.js + // - https://github.com/nodejs/node/blob/v10.12.0/lib/_http_agent.js + // node <= 10 + let defaultTimeoutListenerCount = 1; + const majorVersion = parseInt( + process.version.split(".", 1)[0].substring(1) + ); + if (majorVersion >= 11 && majorVersion <= 12) { + defaultTimeoutListenerCount = 2; + } else if (majorVersion >= 13) { + defaultTimeoutListenerCount = 3; + } - const classConstructor = this.constructor; - classConstructor.plugins.forEach(plugin => { - Object.assign(this, plugin(this, options)); - }); - } + function deprecate(message) { + console.log("[agentkeepalive:deprecated] %s", message); + } - static defaults(defaults) { - const OctokitWithDefaults = class extends this { - constructor(...args) { - const options = args[0] || {}; + class Agent extends OriginalAgent { + constructor(options) { + options = options || {}; + options.keepAlive = options.keepAlive !== false; + // default is keep-alive and 4s free socket timeout + // see https://medium.com/ssense-tech/reduce-networking-errors-in-nodejs-23b4eb9f2d83 + if (options.freeSocketTimeout === undefined) { + options.freeSocketTimeout = 4000; + } + // Legacy API: keepAliveTimeout should be rename to `freeSocketTimeout` + if (options.keepAliveTimeout) { + deprecate( + "options.keepAliveTimeout is deprecated, please use options.freeSocketTimeout instead" + ); + options.freeSocketTimeout = options.keepAliveTimeout; + delete options.keepAliveTimeout; + } + // Legacy API: freeSocketKeepAliveTimeout should be rename to `freeSocketTimeout` + if (options.freeSocketKeepAliveTimeout) { + deprecate( + "options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead" + ); + options.freeSocketTimeout = options.freeSocketKeepAliveTimeout; + delete options.freeSocketKeepAliveTimeout; + } - if (typeof defaults === "function") { - super(defaults(options)); + // Sets the socket to timeout after timeout milliseconds of inactivity on the socket. + // By default is double free socket timeout. + if (options.timeout === undefined) { + // make sure socket default inactivity timeout >= 8s + options.timeout = Math.max(options.freeSocketTimeout * 2, 8000); + } + + // support humanize format + options.timeout = ms(options.timeout); + options.freeSocketTimeout = ms(options.freeSocketTimeout); + options.socketActiveTTL = options.socketActiveTTL + ? ms(options.socketActiveTTL) + : 0; + + super(options); + + this[CURRENT_ID] = 0; + + // create socket success counter + this.createSocketCount = 0; + this.createSocketCountLastCheck = 0; + + this.createSocketErrorCount = 0; + this.createSocketErrorCountLastCheck = 0; + + this.closeSocketCount = 0; + this.closeSocketCountLastCheck = 0; + + // socket error event count + this.errorSocketCount = 0; + this.errorSocketCountLastCheck = 0; + + // request finished counter + this.requestCount = 0; + this.requestCountLastCheck = 0; + + // including free socket timeout counter + this.timeoutSocketCount = 0; + this.timeoutSocketCountLastCheck = 0; + + this.on("free", (socket) => { + // https://github.com/nodejs/node/pull/32000 + // Node.js native agent will check socket timeout eqs agent.options.timeout. + // Use the ttl or freeSocketTimeout to overwrite. + const timeout = this.calcSocketTimeout(socket); + if (timeout > 0 && socket.timeout !== timeout) { + socket.setTimeout(timeout); + } + }); + } + + get freeSocketKeepAliveTimeout() { + deprecate( + "agent.freeSocketKeepAliveTimeout is deprecated, please use agent.options.freeSocketTimeout instead" + ); + return this.options.freeSocketTimeout; + } + + get timeout() { + deprecate( + "agent.timeout is deprecated, please use agent.options.timeout instead" + ); + return this.options.timeout; + } + + get socketActiveTTL() { + deprecate( + "agent.socketActiveTTL is deprecated, please use agent.options.socketActiveTTL instead" + ); + return this.options.socketActiveTTL; + } + + calcSocketTimeout(socket) { + /** + * return <= 0: should free socket + * return > 0: should update socket timeout + * return undefined: not find custom timeout + */ + let freeSocketTimeout = this.options.freeSocketTimeout; + const socketActiveTTL = this.options.socketActiveTTL; + if (socketActiveTTL) { + // check socketActiveTTL + const aliveTime = Date.now() - socket[SOCKET_CREATED_TIME]; + const diff = socketActiveTTL - aliveTime; + if (diff <= 0) { + return diff; + } + if (freeSocketTimeout && diff < freeSocketTimeout) { + freeSocketTimeout = diff; + } + } + // set freeSocketTimeout + if (freeSocketTimeout) { + // set free keepalive timer + // try to use socket custom freeSocketTimeout first, support headers['keep-alive'] + // https://github.com/node-modules/urllib/blob/b76053020923f4d99a1c93cf2e16e0c5ba10bacf/lib/urllib.js#L498 + const customFreeSocketTimeout = + socket.freeSocketTimeout || socket.freeSocketKeepAliveTimeout; + return customFreeSocketTimeout || freeSocketTimeout; + } + } + + keepSocketAlive(socket) { + const result = super.keepSocketAlive(socket); + // should not keepAlive, do nothing + if (!result) return result; + + const customTimeout = this.calcSocketTimeout(socket); + if (typeof customTimeout === "undefined") { + return true; + } + if (customTimeout <= 0) { + debug( + "%s(requests: %s, finished: %s) free but need to destroy by TTL, request count %s, diff is %s", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT], + customTimeout + ); + return false; + } + if (socket.timeout !== customTimeout) { + socket.setTimeout(customTimeout); + } + return true; + } + + // only call on addRequest + reuseSocket(...args) { + // reuseSocket(socket, req) + super.reuseSocket(...args); + const socket = args[0]; + const req = args[1]; + req.reusedSocket = true; + const agentTimeout = this.options.timeout; + if (getSocketTimeout(socket) !== agentTimeout) { + // reset timeout before use + socket.setTimeout(agentTimeout); + debug( + "%s reset timeout to %sms", + socket[SOCKET_NAME], + agentTimeout + ); + } + socket[SOCKET_REQUEST_COUNT]++; + debug( + "%s(requests: %s, finished: %s) reuse on addRequest, timeout %sms", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT], + getSocketTimeout(socket) + ); + } + + [CREATE_ID]() { + const id = this[CURRENT_ID]++; + if (this[CURRENT_ID] === Number.MAX_SAFE_INTEGER) + this[CURRENT_ID] = 0; + return id; + } + + [INIT_SOCKET](socket, options) { + // bugfix here. + // https on node 8, 10 won't set agent.options.timeout by default + // TODO: need to fix on node itself + if (options.timeout) { + const timeout = getSocketTimeout(socket); + if (!timeout) { + socket.setTimeout(options.timeout); + } + } + + if (this.options.keepAlive) { + // Disable Nagle's algorithm: http://blog.caustik.com/2012/04/08/scaling-node-js-to-100k-concurrent-connections/ + // https://fengmk2.com/benchmark/nagle-algorithm-delayed-ack-mock.html + socket.setNoDelay(true); + } + this.createSocketCount++; + if (this.options.socketActiveTTL) { + socket[SOCKET_CREATED_TIME] = Date.now(); + } + // don't show the hole '-----BEGIN CERTIFICATE----' key string + socket[SOCKET_NAME] = `sock[${this[CREATE_ID]()}#${ + options._agentKey + }]`.split("-----BEGIN", 1)[0]; + socket[SOCKET_REQUEST_COUNT] = 1; + socket[SOCKET_REQUEST_FINISHED_COUNT] = 0; + installListeners(this, socket, options); + } + + createConnection(options, oncreate) { + let called = false; + const onNewCreate = (err, socket) => { + if (called) return; + called = true; + + if (err) { + this.createSocketErrorCount++; + return oncreate(err); + } + this[INIT_SOCKET](socket, options); + oncreate(err, socket); + }; + + const newSocket = super.createConnection(options, onNewCreate); + if (newSocket) onNewCreate(null, newSocket); + return newSocket; + } + + get statusChanged() { + const changed = + this.createSocketCount !== this.createSocketCountLastCheck || + this.createSocketErrorCount !== + this.createSocketErrorCountLastCheck || + this.closeSocketCount !== this.closeSocketCountLastCheck || + this.errorSocketCount !== this.errorSocketCountLastCheck || + this.timeoutSocketCount !== this.timeoutSocketCountLastCheck || + this.requestCount !== this.requestCountLastCheck; + if (changed) { + this.createSocketCountLastCheck = this.createSocketCount; + this.createSocketErrorCountLastCheck = this.createSocketErrorCount; + this.closeSocketCountLastCheck = this.closeSocketCount; + this.errorSocketCountLastCheck = this.errorSocketCount; + this.timeoutSocketCountLastCheck = this.timeoutSocketCount; + this.requestCountLastCheck = this.requestCount; + } + return changed; + } + + getCurrentStatus() { + return { + createSocketCount: this.createSocketCount, + createSocketErrorCount: this.createSocketErrorCount, + closeSocketCount: this.closeSocketCount, + errorSocketCount: this.errorSocketCount, + timeoutSocketCount: this.timeoutSocketCount, + requestCount: this.requestCount, + freeSockets: inspect(this.freeSockets), + sockets: inspect(this.sockets), + requests: inspect(this.requests), + }; + } + } + + // node 8 don't has timeout attribute on socket + // https://github.com/nodejs/node/pull/21204/files#diff-e6ef024c3775d787c38487a6309e491dR408 + function getSocketTimeout(socket) { + return socket.timeout || socket._idleTimeout; + } + + function installListeners(agent, socket, options) { + debug( + "%s create, timeout %sms", + socket[SOCKET_NAME], + getSocketTimeout(socket) + ); + + // listener socket events: close, timeout, error, free + function onFree() { + // create and socket.emit('free') logic + // https://github.com/nodejs/node/blob/master/lib/_http_agent.js#L311 + // no req on the socket, it should be the new socket + if (!socket._httpMessage && socket[SOCKET_REQUEST_COUNT] === 1) + return; + + socket[SOCKET_REQUEST_FINISHED_COUNT]++; + agent.requestCount++; + debug( + "%s(requests: %s, finished: %s) free", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT] + ); + + // should reuse on pedding requests? + const name = agent.getName(options); + if ( + socket.writable && + agent.requests[name] && + agent.requests[name].length + ) { + // will be reuse on agent free listener + socket[SOCKET_REQUEST_COUNT]++; + debug( + "%s(requests: %s, finished: %s) will be reuse on agent free event", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT] + ); + } + } + socket.on("free", onFree); + + function onClose(isError) { + debug( + "%s(requests: %s, finished: %s) close, isError: %s", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT], + isError + ); + agent.closeSocketCount++; + } + socket.on("close", onClose); + + // start socket timeout handler + function onTimeout() { + // onTimeout and emitRequestTimeout(_http_client.js) + // https://github.com/nodejs/node/blob/v12.x/lib/_http_client.js#L711 + const listenerCount = socket.listeners("timeout").length; + // node <= 10, default listenerCount is 1, onTimeout + // 11 < node <= 12, default listenerCount is 2, onTimeout and emitRequestTimeout + // node >= 13, default listenerCount is 3, onTimeout, + // onTimeout(https://github.com/nodejs/node/pull/32000/files#diff-5f7fb0850412c6be189faeddea6c5359R333) + // and emitRequestTimeout + const timeout = getSocketTimeout(socket); + const req = socket._httpMessage; + const reqTimeoutListenerCount = + (req && req.listeners("timeout").length) || 0; + debug( + "%s(requests: %s, finished: %s) timeout after %sms, listeners %s, defaultTimeoutListenerCount %s, hasHttpRequest %s, HttpRequest timeoutListenerCount %s", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT], + timeout, + listenerCount, + defaultTimeoutListenerCount, + !!req, + reqTimeoutListenerCount + ); + if (debug.enabled) { + debug( + "timeout listeners: %s", + socket + .listeners("timeout") + .map((f) => f.name) + .join(", ") + ); + } + agent.timeoutSocketCount++; + const name = agent.getName(options); + if ( + agent.freeSockets[name] && + agent.freeSockets[name].indexOf(socket) !== -1 + ) { + // free socket timeout, destroy quietly + socket.destroy(); + // Remove it from freeSockets list immediately to prevent new requests + // from being sent through this socket. + agent.removeSocket(socket, options); + debug("%s is free, destroy quietly", socket[SOCKET_NAME]); + } else { + // if there is no any request socket timeout handler, + // agent need to handle socket timeout itself. + // + // custom request socket timeout handle logic must follow these rules: + // 1. Destroy socket first + // 2. Must emit socket 'agentRemove' event tell agent remove socket + // from freeSockets list immediately. + // Otherise you may be get 'socket hang up' error when reuse + // free socket and timeout happen in the same time. + if (reqTimeoutListenerCount === 0) { + const error = new Error("Socket timeout"); + error.code = "ERR_SOCKET_TIMEOUT"; + error.timeout = timeout; + // must manually call socket.end() or socket.destroy() to end the connection. + // https://nodejs.org/dist/latest-v10.x/docs/api/net.html#net_socket_settimeout_timeout_callback + socket.destroy(error); + agent.removeSocket(socket, options); + debug("%s destroy with timeout error", socket[SOCKET_NAME]); + } + } + } + socket.on("timeout", onTimeout); + + function onError(err) { + const listenerCount = socket.listeners("error").length; + debug( + "%s(requests: %s, finished: %s) error: %s, listenerCount: %s", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT], + err, + listenerCount + ); + agent.errorSocketCount++; + if (listenerCount === 1) { + // if socket don't contain error event handler, don't catch it, emit it again + debug("%s emit uncaught error event", socket[SOCKET_NAME]); + socket.removeListener("error", onError); + socket.emit("error", err); + } + } + socket.on("error", onError); + + function onRemove() { + debug( + "%s(requests: %s, finished: %s) agentRemove", + socket[SOCKET_NAME], + socket[SOCKET_REQUEST_COUNT], + socket[SOCKET_REQUEST_FINISHED_COUNT] + ); + // We need this function for cases like HTTP 'upgrade' + // (defined by WebSockets) where we need to remove a socket from the + // pool because it'll be locked up indefinitely + socket.removeListener("close", onClose); + socket.removeListener("error", onError); + socket.removeListener("free", onFree); + socket.removeListener("timeout", onTimeout); + socket.removeListener("agentRemove", onRemove); + } + socket.on("agentRemove", onRemove); + } + + module.exports = Agent; + + function inspect(obj) { + const res = {}; + for (const key in obj) { + res[key] = obj[key].length; + } + return res; + } + + /***/ + }, + + /***/ 7757: /***/ (module) => { + "use strict"; + + module.exports = { + // agent + CURRENT_ID: Symbol("agentkeepalive#currentId"), + CREATE_ID: Symbol("agentkeepalive#createId"), + INIT_SOCKET: Symbol("agentkeepalive#initSocket"), + CREATE_HTTPS_CONNECTION: Symbol("agentkeepalive#createHttpsConnection"), + // socket + SOCKET_CREATED_TIME: Symbol("agentkeepalive#socketCreatedTime"), + SOCKET_NAME: Symbol("agentkeepalive#socketName"), + SOCKET_REQUEST_COUNT: Symbol("agentkeepalive#socketRequestCount"), + SOCKET_REQUEST_FINISHED_COUNT: Symbol( + "agentkeepalive#socketRequestFinishedCount" + ), + }; + + /***/ + }, + + /***/ 5500: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const OriginalHttpsAgent = __nccwpck_require__(5687).Agent; + const HttpAgent = __nccwpck_require__(5006); + const { INIT_SOCKET, CREATE_HTTPS_CONNECTION } = + __nccwpck_require__(7757); + + class HttpsAgent extends HttpAgent { + constructor(options) { + super(options); + + this.defaultPort = 443; + this.protocol = "https:"; + this.maxCachedSessions = this.options.maxCachedSessions; + /* istanbul ignore next */ + if (this.maxCachedSessions === undefined) { + this.maxCachedSessions = 100; + } + + this._sessionCache = { + map: {}, + list: [], + }; + } + + createConnection(options, oncreate) { + const socket = this[CREATE_HTTPS_CONNECTION](options, oncreate); + this[INIT_SOCKET](socket, options); + return socket; + } + } + + // https://github.com/nodejs/node/blob/master/lib/https.js#L89 + HttpsAgent.prototype[CREATE_HTTPS_CONNECTION] = + OriginalHttpsAgent.prototype.createConnection; + + [ + "getName", + "_getSession", + "_cacheSession", + // https://github.com/nodejs/node/pull/4982 + "_evictSession", + ].forEach(function (method) { + /* istanbul ignore next */ + if (typeof OriginalHttpsAgent.prototype[method] === "function") { + HttpsAgent.prototype[method] = OriginalHttpsAgent.prototype[method]; + } + }); + + module.exports = HttpsAgent; + + /***/ + }, + + /***/ 9417: /***/ (module) => { + "use strict"; + + module.exports = balanced; + function balanced(a, b, str) { + if (a instanceof RegExp) a = maybeMatch(a, str); + if (b instanceof RegExp) b = maybeMatch(b, str); + + var r = range(a, b, str); + + return ( + r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length), + } + ); + } + + function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; + } + + balanced.range = range; + function range(a, b, str) { + var begs, beg, left, right, result; + var ai = str.indexOf(a); + var bi = str.indexOf(b, ai + 1); + var i = ai; + + if (ai >= 0 && bi > 0) { + if (a === b) { + return [ai, bi]; + } + begs = []; + left = str.length; + + while (i >= 0 && !result) { + if (i == ai) { + begs.push(i); + ai = str.indexOf(a, i + 1); + } else if (begs.length == 1) { + result = [begs.pop(), bi]; + } else { + beg = begs.pop(); + if (beg < left) { + left = beg; + right = bi; + } + + bi = str.indexOf(b, i + 1); + } + + i = ai < bi && ai >= 0 ? ai : bi; + } + + if (begs.length) { + result = [left, right]; + } + } + + return result; + } + + /***/ + }, + + /***/ 3682: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var register = __nccwpck_require__(4670); + var addHook = __nccwpck_require__(5549); + var removeHook = __nccwpck_require__(6819); + + // bind with array of arguments: https://stackoverflow.com/a/21792913 + 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; + // expose constructors as a named property for TypeScript + module.exports.Hook = Hook; + module.exports.Singular = Hook.Singular; + module.exports.Collection = Hook.Collection; + + /***/ + }, + + /***/ 5549: /***/ (module) => { + module.exports = addHook; + + function addHook(state, kind, name, hook) { + var orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } + + if (kind === "before") { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } + + if (kind === "after") { + 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 (kind === "error") { + 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, + }); + } + + /***/ + }, + + /***/ 4670: /***/ (module) => { + module.exports = register; + + function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } + + if (!options) { + options = {}; + } + + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, 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)(); + }); + } + + /***/ + }, + + /***/ 6819: /***/ (module) => { + module.exports = removeHook; + + function removeHook(state, name, method) { + if (!state.registry[name]) { return; } - super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { - userAgent: `${options.userAgent} ${defaults.userAgent}` - } : null)); + var index = state.registry[name] + .map(function (registered) { + return registered.orig; + }) + .indexOf(method); + + if (index === -1) { + return; + } + + state.registry[name].splice(index, 1); } - }; - return OctokitWithDefaults; - } - /** - * Attach a plugin (or many) to your Octokit instance. - * - * @example - * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) - */ + /***/ + }, + /***/ 3717: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var balanced = __nccwpck_require__(9417); - static plugin(...newPlugins) { - var _a; + module.exports = expandTop; - const currentPlugins = this.plugins; - const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); - return NewOctokit; - } + var escSlash = "\0SLASH" + Math.random() + "\0"; + var escOpen = "\0OPEN" + Math.random() + "\0"; + var escClose = "\0CLOSE" + Math.random() + "\0"; + var escComma = "\0COMMA" + Math.random() + "\0"; + var escPeriod = "\0PERIOD" + Math.random() + "\0"; -} -Octokit.VERSION = VERSION; -Octokit.plugins = []; - -exports.Octokit = Octokit; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 9440: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var isPlainObject = __nccwpck_require__(3287); -var universalUserAgent = __nccwpck_require__(5030); - -function lowercaseKeys(object) { - if (!object) { - return {}; - } - return Object.keys(object).reduce((newObj, key) => { - newObj[key.toLowerCase()] = object[key]; - return newObj; - }, {}); -} - -function mergeDeep(defaults, options) { - const result = Object.assign({}, defaults); - Object.keys(options).forEach(key => { - if (isPlainObject.isPlainObject(options[key])) { - if (!(key in defaults)) Object.assign(result, { - [key]: options[key] - });else result[key] = mergeDeep(defaults[key], options[key]); - } else { - Object.assign(result, { - [key]: options[key] - }); - } - }); - return result; -} - -function removeUndefinedProperties(obj) { - for (const key in obj) { - if (obj[key] === undefined) { - delete obj[key]; - } - } - return obj; -} - -function merge(defaults, route, options) { - if (typeof route === "string") { - let [method, url] = route.split(" "); - options = Object.assign(url ? { - method, - url - } : { - url: method - }, options); - } else { - options = Object.assign({}, route); - } - // lowercase header names before merging with defaults to avoid duplicates - options.headers = lowercaseKeys(options.headers); - // remove properties with undefined values before merging - removeUndefinedProperties(options); - removeUndefinedProperties(options.headers); - const mergedOptions = mergeDeep(defaults || {}, options); - // mediaType.previews arrays are merged, instead of overwritten - 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 (names.length === 0) { - return url; - } - return url + separator + names.map(name => { - if (name === "q") { - return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); - } - return `${name}=${encodeURIComponent(parameters[name])}`; - }).join("&"); -} - -const urlVariableRegex = /\{[^}]+\}/g; -function removeNonChars(variableName) { - return variableName.replace(/^\W+|\W+$/g, "").split(/,/); -} -function extractUrlVariableNames(url) { - const matches = url.match(urlVariableRegex); - if (!matches) { - return []; - } - return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); -} - -function omit(object, keysToOmit) { - return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { - obj[key] = object[key]; - return obj; - }, {}); -} - -// Based on https://github.com/bramstein/url-template, licensed under BSD -// TODO: create separate package. -// -// Copyright (c) 2012-2014, Bram Stein -// All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions -// are met: -// 1. Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// 2. Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// 3. The name of the author may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED -// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO -// EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -/* istanbul ignore file */ -function encodeReserved(str) { - return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) { - if (!/%[0-9A-Fa-f]/.test(part)) { - part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); - } - return part; - }).join(""); -} -function encodeUnreserved(str) { - return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { - return "%" + c.charCodeAt(0).toString(16).toUpperCase(); - }); -} -function encodeValue(operator, value, key) { - value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); - if (key) { - return encodeUnreserved(key) + "=" + value; - } else { - return value; - } -} -function isDefined(value) { - return value !== undefined && value !== null; -} -function isKeyOperator(operator) { - return operator === ";" || operator === "&" || operator === "?"; -} -function getValues(context, operator, key, modifier) { - var value = context[key], - result = []; - if (isDefined(value) && value !== "") { - if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { - value = value.toString(); - if (modifier && modifier !== "*") { - value = value.substring(0, parseInt(modifier, 10)); + function numeric(str) { + return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0); } - result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); - } else { - if (modifier === "*") { - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function (value) { - result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); - }); + + function escapeBraces(str) { + return str + .split("\\\\") + .join(escSlash) + .split("\\{") + .join(escOpen) + .split("\\}") + .join(escClose) + .split("\\,") + .join(escComma) + .split("\\.") + .join(escPeriod); + } + + function unescapeBraces(str) { + return str + .split(escSlash) + .join("\\") + .split(escOpen) + .join("{") + .split(escClose) + .join("}") + .split(escComma) + .join(",") + .split(escPeriod) + .join("."); + } + + // Basically just str.split(","), but handling cases + // where we have nested braced sections, which should be + // treated as individual members, like {a,{b,c},d} + function parseCommaParts(str) { + if (!str) return [""]; + + var parts = []; + var m = balanced("{", "}", str); + + if (!m) return str.split(","); + + var pre = m.pre; + var body = m.body; + var post = m.post; + var p = pre.split(","); + + p[p.length - 1] += "{" + body + "}"; + var postParts = parseCommaParts(post); + if (post.length) { + p[p.length - 1] += postParts.shift(); + p.push.apply(p, postParts); + } + + parts.push.apply(parts, p); + + return parts; + } + + function expandTop(str) { + if (!str) return []; + + // I don't know why Bash 4.3 does this, but it does. + // Anything starting with {} will have the first two bytes preserved + // but *only* at the top level, so {},a}b will not expand to anything, + // but a{},b}c will be expanded to [a}c,abc]. + // One could argue that this is a bug in Bash, but since the goal of + // this module is to match Bash's rules, we escape a leading {} + if (str.substr(0, 2) === "{}") { + str = "\\{\\}" + str.substr(2); + } + + return expand(escapeBraces(str), true).map(unescapeBraces); + } + + function embrace(str) { + return "{" + str + "}"; + } + function isPadded(el) { + return /^-?0\d/.test(el); + } + + function lte(i, y) { + return i <= y; + } + function gte(i, y) { + return i >= y; + } + + function expand(str, isTop) { + var expansions = []; + + var m = balanced("{", "}", str); + if (!m) return [str]; + + // no need to expand pre, since it is guaranteed to be free of brace-sets + var pre = m.pre; + var post = m.post.length ? expand(m.post, false) : [""]; + + if (/\$$/.test(m.pre)) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + "{" + m.body + "}" + post[k]; + expansions.push(expansion); + } } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - result.push(encodeValue(operator, value[k], k)); + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); + var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test( + m.body + ); + var isSequence = isNumericSequence || isAlphaSequence; + var isOptions = m.body.indexOf(",") >= 0; + if (!isSequence && !isOptions) { + // {a},b} + if (m.post.match(/,.*\}/)) { + str = m.pre + "{" + m.body + escClose + m.post; + return expand(str); } - }); - } - } else { - const tmp = []; - if (Array.isArray(value)) { - value.filter(isDefined).forEach(function (value) { - tmp.push(encodeValue(operator, value)); - }); - } else { - Object.keys(value).forEach(function (k) { - if (isDefined(value[k])) { - tmp.push(encodeUnreserved(k)); - tmp.push(encodeValue(operator, value[k].toString())); + return [str]; + } + + var n; + if (isSequence) { + n = m.body.split(/\.\./); + } else { + n = parseCommaParts(m.body); + if (n.length === 1) { + // x{{a,b}}y ==> x{a}y x{b}y + n = expand(n[0], false).map(embrace); + if (n.length === 1) { + return post.map(function (p) { + return m.pre + n[0] + p; + }); + } } - }); + } + + // at this point, n is the parts, and we know it's not a comma set + // with a single entry. + var N; + + if (isSequence) { + var x = numeric(n[0]); + var y = numeric(n[1]); + var width = Math.max(n[0].length, n[1].length); + var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1; + var test = lte; + var reverse = y < x; + if (reverse) { + incr *= -1; + test = gte; + } + var pad = n.some(isPadded); + + N = []; + + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) { + c = String.fromCharCode(i); + if (c === "\\") c = ""; + } else { + c = String(i); + if (pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join("0"); + if (i < 0) c = "-" + z + c.slice(1); + else c = z + c; + } + } + } + N.push(c); + } + } else { + N = []; + + for (var j = 0; j < n.length; j++) { + N.push.apply(N, expand(n[j], false)); + } + } + + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; k++) { + var expansion = pre + N[j] + post[k]; + if (!isTop || isSequence || expansion) expansions.push(expansion); + } + } } - if (isKeyOperator(operator)) { - result.push(encodeUnreserved(key) + "=" + tmp.join(",")); - } else if (tmp.length !== 0) { - result.push(tmp.join(",")); + + return expansions; + } + + /***/ + }, + + /***/ 2028: /***/ (module) => { + /** + * Helpers. + */ + + var s = 1000; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + + /** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + + module.exports = function (val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + "val is not a non-empty string or a valid number. val=" + + JSON.stringify(val) + ); + }; + + /** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = + /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return undefined; } } - } - } 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 = ["+", "#", ".", "/", ";", "?", "&"]; - return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { - if (expression) { - let operator = ""; - const values = []; - if (operators.indexOf(expression.charAt(0)) !== -1) { - operator = expression.charAt(0); - expression = expression.substr(1); - } - expression.split(/,/g).forEach(function (variable) { - var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); - values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); - }); - if (operator && operator !== "+") { - var separator = ","; - if (operator === "?") { - separator = "&"; - } else if (operator !== "#") { - separator = operator; + + /** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; } - return (values.length !== 0 ? operator : "") + values.join(separator); - } else { - return values.join(","); + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; } - } else { - return encodeReserved(literal); - } - }); -} -function parse(options) { - // https://fetch.spec.whatwg.org/#methods - let method = options.method.toUpperCase(); - // replace :varname with {varname} to make it RFC 6570 compatible - 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"]); - // extract variable names from URL to calculate remaining variables later - 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) { - // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw - headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); - } - if (options.mediaType.previews.length) { - const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; - headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { - const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; - return `application/vnd.github.${preview}-preview${format}`; - }).join(","); - } - } - // for GET/HEAD requests, set URL query parameters from remaining parameters - // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters - 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; + /** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; } - } - } - // default content-type for JSON if body is set - if (!headers["content-type"] && typeof body !== "undefined") { - headers["content-type"] = "application/json; charset=utf-8"; - } - // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. - // fetch does not allow to set `content-length` header, but we can set body to an empty string - if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { - body = ""; - } - // Only return body/request keys if present - return Object.assign({ - method, - url, - headers - }, typeof body !== "undefined" ? { - body - } : null, options.request ? { - request: options.request - } : null); -} -function endpointWithDefaults(defaults, route, options) { - return parse(merge(defaults, route, options)); -} + /** + * Pluralization helper. + */ -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 - }); -} - -const VERSION = "7.0.5"; - -const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; -// DEFAULTS has all properties set that EndpointOptions has, except url. -// So we use RequestParameters and add method as additional required property. -const DEFAULTS = { - method: "GET", - baseUrl: "https://api.github.com", - headers: { - accept: "application/vnd.github.v3+json", - "user-agent": userAgent - }, - mediaType: { - format: "", - previews: [] - } -}; - -const endpoint = withDefaults(null, DEFAULTS); - -exports.endpoint = endpoint; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 8467: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var request = __nccwpck_require__(6234); -var universalUserAgent = __nccwpck_require__(5030); - -const VERSION = "5.0.5"; - -function _buildMessageForResponseErrors(data) { - return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); -} -class GraphqlResponseError extends Error { - constructor(request, headers, response) { - super(_buildMessageForResponseErrors(response)); - this.request = request; - this.headers = headers; - this.response = response; - this.name = "GraphqlResponseError"; - // Expose the errors and response data in their shorthand properties. - this.errors = response.errors; - this.data = response.data; - // Maintains proper stack trace (only available on V8) - /* istanbul ignore next */ - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - } -} - -const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; -const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; -const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; -function graphql(request, query, options) { - if (options) { - if (typeof query === "string" && "query" in options) { - return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`)); - } - for (const key in options) { - if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue; - return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`)); - } - } - const parsedOptions = typeof query === "string" ? Object.assign({ - query - }, options) : query; - const requestOptions = Object.keys(parsedOptions).reduce((result, key) => { - if (NON_VARIABLE_OPTIONS.includes(key)) { - result[key] = parsedOptions[key]; - return result; - } - if (!result.variables) { - result.variables = {}; - } - result.variables[key] = parsedOptions[key]; - return result; - }, {}); - // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix - // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 - const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; - if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { - requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); - } - return request(requestOptions).then(response => { - if (response.data.errors) { - const headers = {}; - for (const key of Object.keys(response.headers)) { - headers[key] = response.headers[key]; + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); } - throw new GraphqlResponseError(requestOptions, headers, response.data); - } - return response.data.data; - }); -} -function withDefaults(request, newDefaults) { - const newRequest = request.defaults(newDefaults); - const newApi = (query, options) => { - return graphql(newRequest, query, options); - }; - return Object.assign(newApi, { - defaults: withDefaults.bind(null, newRequest), - endpoint: newRequest.endpoint - }); -} + /***/ + }, -const graphql$1 = withDefaults(request.request, { - headers: { - "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` - }, - method: "POST", - url: "/graphql" -}); -function withCustomRequest(customRequest) { - return withDefaults(customRequest, { - method: "POST", - url: "/graphql" - }); -} + /***/ 8222: /***/ (module, exports, __nccwpck_require__) => { + /* eslint-env browser */ -exports.GraphqlResponseError = GraphqlResponseError; -exports.graphql = graphql$1; -exports.withCustomRequest = withCustomRequest; -//# sourceMappingURL=index.js.map + /** + * This is the web browser implementation of `debug()`. + */ + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.storage = localstorage(); + exports.destroy = (() => { + let warned = false; -/***/ }), - -/***/ 4193: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -const VERSION = "6.0.0"; - -/** - * Some “list” response that can be paginated have a different response structure - * - * They have a `total_count` key in the response (search also has `incomplete_results`, - * /installation/repositories also has `repository_selection`), as well as a key with - * the list of the items which name varies from endpoint to endpoint. - * - * Octokit normalizes these responses so that paginated results are always returned following - * the same structure. One challenge is that if the list response has only one page, no Link - * header is provided, so this header alone is not sufficient to check wether a response is - * paginated or not. - * - * We check if a "total_count" key is present in the response data, but also make sure that - * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would - * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref - */ -function normalizePaginatedListResponse(response) { - // endpoints can respond with 204 if repository is empty - if (!response.data) { - return { - ...response, - data: [] - }; - } - const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); - if (!responseNeedsNormalization) return response; - // keep the additional properties intact as there is currently no other way - // to retrieve the same information. - const incompleteResults = response.data.incomplete_results; - const repositorySelection = response.data.repository_selection; - const totalCount = response.data.total_count; - delete response.data.incomplete_results; - delete response.data.repository_selection; - delete response.data.total_count; - const namespaceKey = Object.keys(response.data)[0]; - const data = response.data[namespaceKey]; - response.data = data; - if (typeof incompleteResults !== "undefined") { - response.data.incomplete_results = incompleteResults; - } - if (typeof repositorySelection !== "undefined") { - response.data.repository_selection = repositorySelection; - } - response.data.total_count = totalCount; - return response; -} - -function iterator(octokit, route, parameters) { - const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); - const requestMethod = typeof route === "function" ? route : octokit.request; - const method = options.method; - const headers = options.headers; - let url = options.url; - return { - [Symbol.asyncIterator]: () => ({ - async next() { - if (!url) return { - done: true + return () => { + if (!warned) { + warned = true; + console.warn( + "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`." + ); + } }; - try { - const response = await requestMethod({ - method, - url, - headers - }); - const normalizedResponse = normalizePaginatedListResponse(response); - // `response.headers.link` format: - // '; rel="next", ; rel="last"' - // sets `url` to undefined if "next" URL is not present or `link` header is not set - url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; - return { - value: normalizedResponse - }; - } catch (error) { - if (error.status !== 409) throw error; - url = ""; - return { - value: { - status: 200, - headers: {}, - data: [] - } - }; - } - } - }) - }; -} - -function paginate(octokit, route, parameters, mapFn) { - if (typeof parameters === "function") { - mapFn = parameters; - parameters = undefined; - } - return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); -} -function gather(octokit, results, iterator, mapFn) { - return iterator.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, iterator, mapFn); - }); -} - -const composePaginateRest = Object.assign(paginate, { - iterator -}); - -const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/dependabot/alerts", "GET /enterprises/{enterprise}/secret-scanning/alerts", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /licenses", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/cache/usage-by-repository", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/required_workflows", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/actions/variables", "GET /orgs/{org}/actions/variables/{name}/repositories", "GET /orgs/{org}/blocks", "GET /orgs/{org}/code-scanning/alerts", "GET /orgs/{org}/codespaces", "GET /orgs/{org}/codespaces/secrets", "GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories", "GET /orgs/{org}/dependabot/alerts", "GET /orgs/{org}/dependabot/secrets", "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", "GET /orgs/{org}/events", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/members/{username}/codespaces", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{org}/{repo}/actions/required_workflows", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/caches", "GET /repos/{owner}/{repo}/actions/required_workflows/{required_workflow_id_for_repo}/runs", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/variables", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/codespaces", "GET /repos/{owner}/{repo}/codespaces/devcontainers", "GET /repos/{owner}/{repo}/codespaces/secrets", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/status", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/dependabot/alerts", "GET /repos/{owner}/{repo}/dependabot/secrets", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/environments", "GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repos/{owner}/{repo}/topics", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /repositories/{repository_id}/environments/{environment_name}/variables", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/codespaces", "GET /user/codespaces/secrets", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/packages/{package_type}/{package_name}/versions", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/ssh_signing_keys", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/ssh_signing_keys", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; - -function isPaginatingEndpoint(arg) { - if (typeof arg === "string") { - return paginatingEndpoints.includes(arg); - } else { - return false; - } -} - -/** - * @param octokit Octokit instance - * @param options Options passed to Octokit constructor - */ -function paginateRest(octokit) { - return { - paginate: Object.assign(paginate.bind(null, octokit), { - iterator: iterator.bind(null, octokit) - }) - }; -} -paginateRest.VERSION = VERSION; - -exports.composePaginateRest = composePaginateRest; -exports.isPaginatingEndpoint = isPaginatingEndpoint; -exports.paginateRest = paginateRest; -exports.paginatingEndpoints = paginatingEndpoints; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 8883: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -const VERSION = "1.0.4"; - -/** - * @param octokit Octokit instance - * @param options Options passed to Octokit constructor - */ - -function requestLog(octokit) { - octokit.hook.wrap("request", (request, options) => { - octokit.log.debug("request", options); - const start = Date.now(); - const requestOptions = octokit.request.endpoint.parse(options); - const path = requestOptions.url.replace(options.baseUrl, ""); - return request(options).then(response => { - octokit.log.info(`${requestOptions.method} ${path} - ${response.status} in ${Date.now() - start}ms`); - return response; - }).catch(error => { - octokit.log.info(`${requestOptions.method} ${path} - ${error.status} in ${Date.now() - start}ms`); - throw error; - }); - }); -} -requestLog.VERSION = VERSION; - -exports.requestLog = requestLog; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 3044: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -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}"], - addSelectedRepoToRequiredWorkflow: ["PUT /orgs/{org}/actions/required_workflows/{required_workflow_id}/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"], - createRequiredWorkflow: ["POST /orgs/{org}/actions/required_workflows"], - 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}"], - deleteRequiredWorkflow: ["DELETE /orgs/{org}/actions/required_workflows/{required_workflow_id}"], - 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"], - 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}"], - 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"] - }], - getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], - getRepoRequiredWorkflow: ["GET /repos/{org}/{repo}/actions/required_workflows/{required_workflow_id_for_repo}"], - getRepoRequiredWorkflowUsage: ["GET /repos/{org}/{repo}/actions/required_workflows/{required_workflow_id_for_repo}/timing"], - getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], - getRepoVariable: ["GET /repos/{owner}/{repo}/actions/variables/{name}"], - getRequiredWorkflow: ["GET /orgs/{org}/actions/required_workflows/{required_workflow_id}"], - 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"], - listRepoRequiredWorkflows: ["GET /repos/{org}/{repo}/actions/required_workflows"], - listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], - listRepoVariables: ["GET /repos/{owner}/{repo}/actions/variables"], - listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], - listRequiredWorkflowRuns: ["GET /repos/{owner}/{repo}/actions/required_workflows/{required_workflow_id_for_repo}/runs"], - listRequiredWorkflows: ["GET /orgs/{org}/actions/required_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"], - listSelectedRepositoriesRequiredWorkflow: ["GET /orgs/{org}/actions/required_workflows/{required_workflow_id}/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}"], - removeSelectedRepoFromRequiredWorkflow: ["DELETE /orgs/{org}/actions/required_workflows/{required_workflow_id}/repositories/{repository_id}"], - 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"], - 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"], - setSelectedReposToRequiredWorkflow: ["PUT /orgs/{org}/actions/required_workflows/{required_workflow_id}/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}"], - updateRequiredWorkflow: ["PATCH /orgs/{org}/actions/required_workflows/{required_workflow_id}"] - }, - 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"], - 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"], - 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}"], - getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], - listAlertInstances: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"], - listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], - listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], - listAlertsInstances: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", {}, { - renamed: ["codeScanning", "listAlertInstances"] - }], - listCodeqlDatabases: ["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"], - listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], - updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], - 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}"], - 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"], - setCodespacesBilling: ["PUT /orgs/{org}/codespaces/billing"], - 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}"] - }, - 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}"] - }, - emojis: { - get: ["GET /emojis"] - }, - enterpriseAdmin: { - addCustomLabelsToSelfHostedRunnerForEnterprise: ["POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], - enableSelectedOrganizationGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], - listLabelsForSelfHostedRunnerForEnterprise: ["GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels"] - }, - 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"], - 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"], - getImportStatus: ["GET /repos/{owner}/{repo}/import"], - getLargeFiles: ["GET /repos/{owner}/{repo}/import/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}"], - setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], - startForAuthenticatedUser: ["POST /user/migrations"], - startForOrg: ["POST /orgs/{org}/migrations"], - startImport: ["PUT /repos/{owner}/{repo}/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"] - }, - orgs: { - addSecurityManagerTeam: ["PUT /orgs/{org}/security-managers/teams/{team_slug}"], - 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}"], - createInvitation: ["POST /orgs/{org}/invitations"], - createWebhook: ["POST /orgs/{org}/hooks"], - deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], - enableOrDisableSecurityProductOnAllOrgRepos: ["POST /orgs/{org}/{security_product}/{enablement}"], - get: ["GET /orgs/{org}"], - getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], - getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], - 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"], - 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"], - listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], - 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"], - 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}"], - 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}"], - 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}"], - 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" - }], - 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"], - 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}"], - createPagesDeployment: ["POST /repos/{owner}/{repo}/pages/deployment"], - createPagesSite: ["POST /repos/{owner}/{repo}/pages"], - createRelease: ["POST /repos/{owner}/{repo}/releases"], - 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}"], - 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}"], - 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"], - disableLfsForRepo: ["DELETE /repos/{owner}/{repo}/lfs"], - 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"], - enableLfsForRepo: ["PUT /repos/{owner}/{repo}/lfs"], - 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"], - 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"], - 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"], - 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"], - getPages: ["GET /repos/{owner}/{repo}/pages"], - getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_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}"], - 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}"], - 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"], - 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}"], - 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}"], - 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}"], - getSecurityAnalysisSettingsForEnterprise: ["GET /enterprises/{enterprise}/code_security_and_analysis"], - 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"], - patchSecurityAnalysisSettingsForEnterprise: ["PATCH /enterprises/{enterprise}/code_security_and_analysis"], - postSecurityProductEnablementForEnterprise: ["POST /enterprises/{enterprise}/{security_product}/{enablement}"], - updateAlert: ["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"] - }, - 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"], - 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}"], - 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"], - 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"] - } -}; - -const VERSION = "7.0.1"; - -function endpointsToMethods(octokit, endpointsMap) { - const newMethods = {}; - for (const [scope, endpoints] of Object.entries(endpointsMap)) { - 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 (!newMethods[scope]) { - newMethods[scope] = {}; - } - const scopeMethods = newMethods[scope]; - if (decorations) { - scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); - continue; - } - scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); - } - } - return newMethods; -} -function decorate(octokit, scope, methodName, defaults, decorations) { - const requestWithDefaults = octokit.request.defaults(defaults); - /* istanbul ignore next */ - function withDecorations(...args) { - // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 - let options = requestWithDefaults.endpoint.merge(...args); - // There are currently no other decorations than `.mapToData` - if (decorations.mapToData) { - options = Object.assign({}, options, { - data: options[decorations.mapToData], - [decorations.mapToData]: undefined - }); - 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) { - // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 - const options = requestWithDefaults.endpoint.merge(...args); - for (const [name, alias] of Object.entries(decorations.renamedParameters)) { - if (name in options) { - octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); - if (!(alias in options)) { - options[alias] = options[name]; - } - delete options[name]; - } - } - return requestWithDefaults(options); - } - // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 - return requestWithDefaults(...args); - } - return Object.assign(withDecorations, requestWithDefaults); -} - -function restEndpointMethods(octokit) { - const api = endpointsToMethods(octokit, Endpoints); - return { - rest: api - }; -} -restEndpointMethods.VERSION = VERSION; -function legacyRestEndpointMethods(octokit) { - const api = endpointsToMethods(octokit, Endpoints); - return { - ...api, - rest: api - }; -} -legacyRestEndpointMethods.VERSION = VERSION; - -exports.legacyRestEndpointMethods = legacyRestEndpointMethods; -exports.restEndpointMethods = restEndpointMethods; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 537: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var deprecation = __nccwpck_require__(8932); -var once = _interopDefault(__nccwpck_require__(1223)); - -const logOnceCode = once(deprecation => console.warn(deprecation)); -const logOnceHeaders = once(deprecation => console.warn(deprecation)); -/** - * Error with extra properties to help with debugging - */ -class RequestError extends Error { - constructor(message, statusCode, options) { - super(message); - // Maintains proper stack trace (only available on V8) - /* istanbul ignore next */ - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - this.name = "HttpError"; - this.status = statusCode; - let headers; - if ("headers" in options && typeof options.headers !== "undefined") { - headers = options.headers; - } - if ("response" in options) { - this.response = options.response; - headers = options.response.headers; - } - // redact request credentials without mutating original request options - const requestCopy = Object.assign({}, options.request); - if (options.request.headers.authorization) { - requestCopy.headers = Object.assign({}, options.request.headers, { - authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") - }); - } - requestCopy.url = requestCopy.url - // client_id & client_secret can be passed as URL query parameters to increase rate limit - // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications - .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") - // OAuth tokens can be passed as URL query parameters, although it is not recommended - // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header - .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); - this.request = requestCopy; - // deprecations - Object.defineProperty(this, "code", { - get() { - logOnceCode(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); - return statusCode; - } - }); - Object.defineProperty(this, "headers", { - get() { - logOnceHeaders(new deprecation.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")); - return headers || {}; - } - }); - } -} - -exports.RequestError = RequestError; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 6234: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var endpoint = __nccwpck_require__(9440); -var universalUserAgent = __nccwpck_require__(5030); -var isPlainObject = __nccwpck_require__(3287); -var nodeFetch = _interopDefault(__nccwpck_require__(467)); -var requestError = __nccwpck_require__(537); - -const VERSION = "6.2.3"; - -function getBufferResponse(response) { - return response.arrayBuffer(); -} - -function fetchWrapper(requestOptions) { - const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; - if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { - requestOptions.body = JSON.stringify(requestOptions.body); - } - let headers = {}; - let status; - let url; - const fetch = requestOptions.request && requestOptions.request.fetch || globalThis.fetch || /* istanbul ignore next */nodeFetch; - return fetch(requestOptions.url, Object.assign({ - method: requestOptions.method, - body: requestOptions.body, - headers: requestOptions.headers, - redirect: requestOptions.redirect - }, - // `requestOptions.request.agent` type is incompatible - // see https://github.com/octokit/types.ts/pull/264 - requestOptions.request)).then(async response => { - url = response.url; - status = response.status; - for (const keyAndValue of response.headers) { - headers[keyAndValue[0]] = keyAndValue[1]; - } - if ("deprecation" in headers) { - const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); - const deprecationLink = matches && matches.pop(); - log.warn(`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); - } - if (status === 204 || status === 205) { - return; - } - // GitHub API returns 200 for HEAD requests - if (requestOptions.method === "HEAD") { - if (status < 400) { - return; - } - throw new requestError.RequestError(response.statusText, status, { - response: { - url, - status, - headers, - data: undefined - }, - request: requestOptions - }); - } - if (status === 304) { - throw new requestError.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.RequestError(toErrorMessage(data), status, { - response: { - url, - status, - headers, - data - }, - request: requestOptions - }); - throw error; - } - return getResponseData(response); - }).then(data => { - return { - status, - url, - headers, - data - }; - }).catch(error => { - if (error instanceof requestError.RequestError) throw error;else if (error.name === "AbortError") throw error; - throw new requestError.RequestError(error.message, 500, { - request: requestOptions - }); - }); -} -async function getResponseData(response) { - const contentType = response.headers.get("content-type"); - if (/application\/json/.test(contentType)) { - return response.json(); - } - if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { - return response.text(); - } - return getBufferResponse(response); -} -function toErrorMessage(data) { - if (typeof data === "string") return data; - // istanbul ignore else - just in case - if ("message" in data) { - if (Array.isArray(data.errors)) { - return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`; - } - return data.message; - } - // istanbul ignore next - just in case - return `Unknown error: ${JSON.stringify(data)}`; -} - -function 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 = (route, parameters) => { - return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); - }; - Object.assign(request, { - endpoint, - defaults: withDefaults.bind(null, endpoint) - }); - return endpointOptions.request.hook(request, endpointOptions); - }; - return Object.assign(newApi, { - endpoint, - defaults: withDefaults.bind(null, endpoint) - }); -} - -const request = withDefaults(endpoint.endpoint, { - headers: { - "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}` - } -}); - -exports.request = request; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 5375: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var core = __nccwpck_require__(6762); -var pluginRequestLog = __nccwpck_require__(8883); -var pluginPaginateRest = __nccwpck_require__(4193); -var pluginRestEndpointMethods = __nccwpck_require__(3044); - -const VERSION = "19.0.7"; - -const Octokit = core.Octokit.plugin(pluginRequestLog.requestLog, pluginRestEndpointMethods.legacyRestEndpointMethods, pluginPaginateRest.paginateRest).defaults({ - userAgent: `octokit-rest.js/${VERSION}` -}); - -exports.Octokit = Octokit; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 1659: -/***/ ((module, exports, __nccwpck_require__) => { - -"use strict"; -/** - * @author Toru Nagashima - * See LICENSE file in root directory for full license. - */ - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -var eventTargetShim = __nccwpck_require__(4697); - -/** - * The signal class. - * @see https://dom.spec.whatwg.org/#abortsignal - */ -class AbortSignal extends eventTargetShim.EventTarget { - /** - * AbortSignal cannot be constructed directly. - */ - constructor() { - super(); - throw new TypeError("AbortSignal cannot be constructed directly"); - } - /** - * Returns `true` if this `AbortSignal`'s `AbortController` has signaled to abort, and `false` otherwise. - */ - get aborted() { - const aborted = abortedFlags.get(this); - if (typeof aborted !== "boolean") { - throw new TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this === null ? "null" : typeof this}`); - } - return aborted; - } -} -eventTargetShim.defineEventAttribute(AbortSignal.prototype, "abort"); -/** - * Create an AbortSignal object. - */ -function createAbortSignal() { - const signal = Object.create(AbortSignal.prototype); - eventTargetShim.EventTarget.call(signal); - abortedFlags.set(signal, false); - return signal; -} -/** - * Abort a given signal. - */ -function abortSignal(signal) { - if (abortedFlags.get(signal) !== false) { - return; - } - abortedFlags.set(signal, true); - signal.dispatchEvent({ type: "abort" }); -} -/** - * Aborted flag for each instances. - */ -const abortedFlags = new WeakMap(); -// Properties should be enumerable. -Object.defineProperties(AbortSignal.prototype, { - aborted: { enumerable: true }, -}); -// `toString()` should return `"[object AbortSignal]"` -if (typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol") { - Object.defineProperty(AbortSignal.prototype, Symbol.toStringTag, { - configurable: true, - value: "AbortSignal", - }); -} - -/** - * The AbortController. - * @see https://dom.spec.whatwg.org/#abortcontroller - */ -class AbortController { - /** - * Initialize this controller. - */ - constructor() { - signals.set(this, createAbortSignal()); - } - /** - * Returns the `AbortSignal` object associated with this object. - */ - get signal() { - return getSignal(this); - } - /** - * Abort and signal to any observers that the associated activity is to be aborted. - */ - abort() { - abortSignal(getSignal(this)); - } -} -/** - * Associated signals. - */ -const signals = new WeakMap(); -/** - * Get the associated signal of a given controller. - */ -function getSignal(controller) { - const signal = signals.get(controller); - if (signal == null) { - throw new TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller === null ? "null" : typeof controller}`); - } - return signal; -} -// Properties should be enumerable. -Object.defineProperties(AbortController.prototype, { - signal: { enumerable: true }, - abort: { enumerable: true }, -}); -if (typeof Symbol === "function" && typeof Symbol.toStringTag === "symbol") { - Object.defineProperty(AbortController.prototype, Symbol.toStringTag, { - configurable: true, - value: "AbortController", - }); -} - -exports.AbortController = AbortController; -exports.AbortSignal = AbortSignal; -exports["default"] = AbortController; - -module.exports = AbortController -module.exports.AbortController = module.exports["default"] = AbortController -module.exports.AbortSignal = AbortSignal -//# sourceMappingURL=abort-controller.js.map - - -/***/ }), - -/***/ 4623: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -module.exports = __nccwpck_require__(5006); -module.exports.HttpsAgent = __nccwpck_require__(5500); -module.exports.constants = __nccwpck_require__(7757); - - -/***/ }), - -/***/ 5006: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const OriginalAgent = (__nccwpck_require__(3685).Agent); -const ms = __nccwpck_require__(845); -const debug = (__nccwpck_require__(3837).debuglog)('agentkeepalive'); -const { - INIT_SOCKET, - CURRENT_ID, - CREATE_ID, - SOCKET_CREATED_TIME, - SOCKET_NAME, - SOCKET_REQUEST_COUNT, - SOCKET_REQUEST_FINISHED_COUNT, -} = __nccwpck_require__(7757); - -// OriginalAgent come from -// - https://github.com/nodejs/node/blob/v8.12.0/lib/_http_agent.js -// - https://github.com/nodejs/node/blob/v10.12.0/lib/_http_agent.js - -// node <= 10 -let defaultTimeoutListenerCount = 1; -const majorVersion = parseInt(process.version.split('.', 1)[0].substring(1)); -if (majorVersion >= 11 && majorVersion <= 12) { - defaultTimeoutListenerCount = 2; -} else if (majorVersion >= 13) { - defaultTimeoutListenerCount = 3; -} - -function deprecate(message) { - console.log('[agentkeepalive:deprecated] %s', message); -} - -class Agent extends OriginalAgent { - constructor(options) { - options = options || {}; - options.keepAlive = options.keepAlive !== false; - // default is keep-alive and 4s free socket timeout - // see https://medium.com/ssense-tech/reduce-networking-errors-in-nodejs-23b4eb9f2d83 - if (options.freeSocketTimeout === undefined) { - options.freeSocketTimeout = 4000; - } - // Legacy API: keepAliveTimeout should be rename to `freeSocketTimeout` - if (options.keepAliveTimeout) { - deprecate('options.keepAliveTimeout is deprecated, please use options.freeSocketTimeout instead'); - options.freeSocketTimeout = options.keepAliveTimeout; - delete options.keepAliveTimeout; - } - // Legacy API: freeSocketKeepAliveTimeout should be rename to `freeSocketTimeout` - if (options.freeSocketKeepAliveTimeout) { - deprecate('options.freeSocketKeepAliveTimeout is deprecated, please use options.freeSocketTimeout instead'); - options.freeSocketTimeout = options.freeSocketKeepAliveTimeout; - delete options.freeSocketKeepAliveTimeout; - } - - // Sets the socket to timeout after timeout milliseconds of inactivity on the socket. - // By default is double free socket timeout. - if (options.timeout === undefined) { - // make sure socket default inactivity timeout >= 8s - options.timeout = Math.max(options.freeSocketTimeout * 2, 8000); - } - - // support humanize format - options.timeout = ms(options.timeout); - options.freeSocketTimeout = ms(options.freeSocketTimeout); - options.socketActiveTTL = options.socketActiveTTL ? ms(options.socketActiveTTL) : 0; - - super(options); - - this[CURRENT_ID] = 0; - - // create socket success counter - this.createSocketCount = 0; - this.createSocketCountLastCheck = 0; - - this.createSocketErrorCount = 0; - this.createSocketErrorCountLastCheck = 0; - - this.closeSocketCount = 0; - this.closeSocketCountLastCheck = 0; - - // socket error event count - this.errorSocketCount = 0; - this.errorSocketCountLastCheck = 0; - - // request finished counter - this.requestCount = 0; - this.requestCountLastCheck = 0; - - // including free socket timeout counter - this.timeoutSocketCount = 0; - this.timeoutSocketCountLastCheck = 0; - - this.on('free', socket => { - // https://github.com/nodejs/node/pull/32000 - // Node.js native agent will check socket timeout eqs agent.options.timeout. - // Use the ttl or freeSocketTimeout to overwrite. - const timeout = this.calcSocketTimeout(socket); - if (timeout > 0 && socket.timeout !== timeout) { - socket.setTimeout(timeout); - } - }); - } - - get freeSocketKeepAliveTimeout() { - deprecate('agent.freeSocketKeepAliveTimeout is deprecated, please use agent.options.freeSocketTimeout instead'); - return this.options.freeSocketTimeout; - } - - get timeout() { - deprecate('agent.timeout is deprecated, please use agent.options.timeout instead'); - return this.options.timeout; - } - - get socketActiveTTL() { - deprecate('agent.socketActiveTTL is deprecated, please use agent.options.socketActiveTTL instead'); - return this.options.socketActiveTTL; - } - - calcSocketTimeout(socket) { - /** - * return <= 0: should free socket - * return > 0: should update socket timeout - * return undefined: not find custom timeout - */ - let freeSocketTimeout = this.options.freeSocketTimeout; - const socketActiveTTL = this.options.socketActiveTTL; - if (socketActiveTTL) { - // check socketActiveTTL - const aliveTime = Date.now() - socket[SOCKET_CREATED_TIME]; - const diff = socketActiveTTL - aliveTime; - if (diff <= 0) { - return diff; - } - if (freeSocketTimeout && diff < freeSocketTimeout) { - freeSocketTimeout = diff; - } - } - // set freeSocketTimeout - if (freeSocketTimeout) { - // set free keepalive timer - // try to use socket custom freeSocketTimeout first, support headers['keep-alive'] - // https://github.com/node-modules/urllib/blob/b76053020923f4d99a1c93cf2e16e0c5ba10bacf/lib/urllib.js#L498 - const customFreeSocketTimeout = socket.freeSocketTimeout || socket.freeSocketKeepAliveTimeout; - return customFreeSocketTimeout || freeSocketTimeout; - } - } - - keepSocketAlive(socket) { - const result = super.keepSocketAlive(socket); - // should not keepAlive, do nothing - if (!result) return result; - - const customTimeout = this.calcSocketTimeout(socket); - if (typeof customTimeout === 'undefined') { - return true; - } - if (customTimeout <= 0) { - debug('%s(requests: %s, finished: %s) free but need to destroy by TTL, request count %s, diff is %s', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], customTimeout); - return false; - } - if (socket.timeout !== customTimeout) { - socket.setTimeout(customTimeout); - } - return true; - } - - // only call on addRequest - reuseSocket(...args) { - // reuseSocket(socket, req) - super.reuseSocket(...args); - const socket = args[0]; - const req = args[1]; - req.reusedSocket = true; - const agentTimeout = this.options.timeout; - if (getSocketTimeout(socket) !== agentTimeout) { - // reset timeout before use - socket.setTimeout(agentTimeout); - debug('%s reset timeout to %sms', socket[SOCKET_NAME], agentTimeout); - } - socket[SOCKET_REQUEST_COUNT]++; - debug('%s(requests: %s, finished: %s) reuse on addRequest, timeout %sms', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], - getSocketTimeout(socket)); - } - - [CREATE_ID]() { - const id = this[CURRENT_ID]++; - if (this[CURRENT_ID] === Number.MAX_SAFE_INTEGER) this[CURRENT_ID] = 0; - return id; - } - - [INIT_SOCKET](socket, options) { - // bugfix here. - // https on node 8, 10 won't set agent.options.timeout by default - // TODO: need to fix on node itself - if (options.timeout) { - const timeout = getSocketTimeout(socket); - if (!timeout) { - socket.setTimeout(options.timeout); - } - } - - if (this.options.keepAlive) { - // Disable Nagle's algorithm: http://blog.caustik.com/2012/04/08/scaling-node-js-to-100k-concurrent-connections/ - // https://fengmk2.com/benchmark/nagle-algorithm-delayed-ack-mock.html - socket.setNoDelay(true); - } - this.createSocketCount++; - if (this.options.socketActiveTTL) { - socket[SOCKET_CREATED_TIME] = Date.now(); - } - // don't show the hole '-----BEGIN CERTIFICATE----' key string - socket[SOCKET_NAME] = `sock[${this[CREATE_ID]()}#${options._agentKey}]`.split('-----BEGIN', 1)[0]; - socket[SOCKET_REQUEST_COUNT] = 1; - socket[SOCKET_REQUEST_FINISHED_COUNT] = 0; - installListeners(this, socket, options); - } - - createConnection(options, oncreate) { - let called = false; - const onNewCreate = (err, socket) => { - if (called) return; - called = true; - - if (err) { - this.createSocketErrorCount++; - return oncreate(err); - } - this[INIT_SOCKET](socket, options); - oncreate(err, socket); - }; - - const newSocket = super.createConnection(options, onNewCreate); - if (newSocket) onNewCreate(null, newSocket); - return newSocket; - } - - get statusChanged() { - const changed = this.createSocketCount !== this.createSocketCountLastCheck || - this.createSocketErrorCount !== this.createSocketErrorCountLastCheck || - this.closeSocketCount !== this.closeSocketCountLastCheck || - this.errorSocketCount !== this.errorSocketCountLastCheck || - this.timeoutSocketCount !== this.timeoutSocketCountLastCheck || - this.requestCount !== this.requestCountLastCheck; - if (changed) { - this.createSocketCountLastCheck = this.createSocketCount; - this.createSocketErrorCountLastCheck = this.createSocketErrorCount; - this.closeSocketCountLastCheck = this.closeSocketCount; - this.errorSocketCountLastCheck = this.errorSocketCount; - this.timeoutSocketCountLastCheck = this.timeoutSocketCount; - this.requestCountLastCheck = this.requestCount; - } - return changed; - } - - getCurrentStatus() { - return { - createSocketCount: this.createSocketCount, - createSocketErrorCount: this.createSocketErrorCount, - closeSocketCount: this.closeSocketCount, - errorSocketCount: this.errorSocketCount, - timeoutSocketCount: this.timeoutSocketCount, - requestCount: this.requestCount, - freeSockets: inspect(this.freeSockets), - sockets: inspect(this.sockets), - requests: inspect(this.requests), - }; - } -} - -// node 8 don't has timeout attribute on socket -// https://github.com/nodejs/node/pull/21204/files#diff-e6ef024c3775d787c38487a6309e491dR408 -function getSocketTimeout(socket) { - return socket.timeout || socket._idleTimeout; -} - -function installListeners(agent, socket, options) { - debug('%s create, timeout %sms', socket[SOCKET_NAME], getSocketTimeout(socket)); - - // listener socket events: close, timeout, error, free - function onFree() { - // create and socket.emit('free') logic - // https://github.com/nodejs/node/blob/master/lib/_http_agent.js#L311 - // no req on the socket, it should be the new socket - if (!socket._httpMessage && socket[SOCKET_REQUEST_COUNT] === 1) return; - - socket[SOCKET_REQUEST_FINISHED_COUNT]++; - agent.requestCount++; - debug('%s(requests: %s, finished: %s) free', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT]); - - // should reuse on pedding requests? - const name = agent.getName(options); - if (socket.writable && agent.requests[name] && agent.requests[name].length) { - // will be reuse on agent free listener - socket[SOCKET_REQUEST_COUNT]++; - debug('%s(requests: %s, finished: %s) will be reuse on agent free event', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT]); - } - } - socket.on('free', onFree); - - function onClose(isError) { - debug('%s(requests: %s, finished: %s) close, isError: %s', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], isError); - agent.closeSocketCount++; - } - socket.on('close', onClose); - - // start socket timeout handler - function onTimeout() { - // onTimeout and emitRequestTimeout(_http_client.js) - // https://github.com/nodejs/node/blob/v12.x/lib/_http_client.js#L711 - const listenerCount = socket.listeners('timeout').length; - // node <= 10, default listenerCount is 1, onTimeout - // 11 < node <= 12, default listenerCount is 2, onTimeout and emitRequestTimeout - // node >= 13, default listenerCount is 3, onTimeout, - // onTimeout(https://github.com/nodejs/node/pull/32000/files#diff-5f7fb0850412c6be189faeddea6c5359R333) - // and emitRequestTimeout - const timeout = getSocketTimeout(socket); - const req = socket._httpMessage; - const reqTimeoutListenerCount = req && req.listeners('timeout').length || 0; - debug('%s(requests: %s, finished: %s) timeout after %sms, listeners %s, defaultTimeoutListenerCount %s, hasHttpRequest %s, HttpRequest timeoutListenerCount %s', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], - timeout, listenerCount, defaultTimeoutListenerCount, !!req, reqTimeoutListenerCount); - if (debug.enabled) { - debug('timeout listeners: %s', socket.listeners('timeout').map(f => f.name).join(', ')); - } - agent.timeoutSocketCount++; - const name = agent.getName(options); - if (agent.freeSockets[name] && agent.freeSockets[name].indexOf(socket) !== -1) { - // free socket timeout, destroy quietly - socket.destroy(); - // Remove it from freeSockets list immediately to prevent new requests - // from being sent through this socket. - agent.removeSocket(socket, options); - debug('%s is free, destroy quietly', socket[SOCKET_NAME]); - } else { - // if there is no any request socket timeout handler, - // agent need to handle socket timeout itself. - // - // custom request socket timeout handle logic must follow these rules: - // 1. Destroy socket first - // 2. Must emit socket 'agentRemove' event tell agent remove socket - // from freeSockets list immediately. - // Otherise you may be get 'socket hang up' error when reuse - // free socket and timeout happen in the same time. - if (reqTimeoutListenerCount === 0) { - const error = new Error('Socket timeout'); - error.code = 'ERR_SOCKET_TIMEOUT'; - error.timeout = timeout; - // must manually call socket.end() or socket.destroy() to end the connection. - // https://nodejs.org/dist/latest-v10.x/docs/api/net.html#net_socket_settimeout_timeout_callback - socket.destroy(error); - agent.removeSocket(socket, options); - debug('%s destroy with timeout error', socket[SOCKET_NAME]); - } - } - } - socket.on('timeout', onTimeout); - - function onError(err) { - const listenerCount = socket.listeners('error').length; - debug('%s(requests: %s, finished: %s) error: %s, listenerCount: %s', - socket[SOCKET_NAME], socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT], - err, listenerCount); - agent.errorSocketCount++; - if (listenerCount === 1) { - // if socket don't contain error event handler, don't catch it, emit it again - debug('%s emit uncaught error event', socket[SOCKET_NAME]); - socket.removeListener('error', onError); - socket.emit('error', err); - } - } - socket.on('error', onError); - - function onRemove() { - debug('%s(requests: %s, finished: %s) agentRemove', - socket[SOCKET_NAME], - socket[SOCKET_REQUEST_COUNT], socket[SOCKET_REQUEST_FINISHED_COUNT]); - // We need this function for cases like HTTP 'upgrade' - // (defined by WebSockets) where we need to remove a socket from the - // pool because it'll be locked up indefinitely - socket.removeListener('close', onClose); - socket.removeListener('error', onError); - socket.removeListener('free', onFree); - socket.removeListener('timeout', onTimeout); - socket.removeListener('agentRemove', onRemove); - } - socket.on('agentRemove', onRemove); -} - -module.exports = Agent; - -function inspect(obj) { - const res = {}; - for (const key in obj) { - res[key] = obj[key].length; - } - return res; -} - - -/***/ }), - -/***/ 7757: -/***/ ((module) => { - -"use strict"; - - -module.exports = { - // agent - CURRENT_ID: Symbol('agentkeepalive#currentId'), - CREATE_ID: Symbol('agentkeepalive#createId'), - INIT_SOCKET: Symbol('agentkeepalive#initSocket'), - CREATE_HTTPS_CONNECTION: Symbol('agentkeepalive#createHttpsConnection'), - // socket - SOCKET_CREATED_TIME: Symbol('agentkeepalive#socketCreatedTime'), - SOCKET_NAME: Symbol('agentkeepalive#socketName'), - SOCKET_REQUEST_COUNT: Symbol('agentkeepalive#socketRequestCount'), - SOCKET_REQUEST_FINISHED_COUNT: Symbol('agentkeepalive#socketRequestFinishedCount'), -}; - - -/***/ }), - -/***/ 5500: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const OriginalHttpsAgent = (__nccwpck_require__(5687).Agent); -const HttpAgent = __nccwpck_require__(5006); -const { - INIT_SOCKET, - CREATE_HTTPS_CONNECTION, -} = __nccwpck_require__(7757); - -class HttpsAgent extends HttpAgent { - constructor(options) { - super(options); - - this.defaultPort = 443; - this.protocol = 'https:'; - this.maxCachedSessions = this.options.maxCachedSessions; - /* istanbul ignore next */ - if (this.maxCachedSessions === undefined) { - this.maxCachedSessions = 100; - } - - this._sessionCache = { - map: {}, - list: [], - }; - } - - createConnection(options, oncreate) { - const socket = this[CREATE_HTTPS_CONNECTION](options, oncreate); - this[INIT_SOCKET](socket, options); - return socket; - } -} - -// https://github.com/nodejs/node/blob/master/lib/https.js#L89 -HttpsAgent.prototype[CREATE_HTTPS_CONNECTION] = OriginalHttpsAgent.prototype.createConnection; - -[ - 'getName', - '_getSession', - '_cacheSession', - // https://github.com/nodejs/node/pull/4982 - '_evictSession', -].forEach(function(method) { - /* istanbul ignore next */ - if (typeof OriginalHttpsAgent.prototype[method] === 'function') { - HttpsAgent.prototype[method] = OriginalHttpsAgent.prototype[method]; - } -}); - -module.exports = HttpsAgent; - - -/***/ }), - -/***/ 9417: -/***/ ((module) => { - -"use strict"; - -module.exports = balanced; -function balanced(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - - var r = range(a, b, str); - - return r && { - start: r[0], - end: r[1], - pre: str.slice(0, r[0]), - body: str.slice(r[0] + a.length, r[1]), - post: str.slice(r[1] + b.length) - }; -} - -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} - -balanced.range = range; -function range(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - - if (ai >= 0 && bi > 0) { - if(a===b) { - return [ai, bi]; - } - begs = []; - left = str.length; - - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [ begs.pop(), bi ]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - - bi = str.indexOf(b, i + 1); - } - - i = ai < bi && ai >= 0 ? ai : bi; - } - - if (begs.length) { - result = [ left, right ]; - } - } - - return result; -} - - -/***/ }), - -/***/ 3682: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var register = __nccwpck_require__(4670); -var addHook = __nccwpck_require__(5549); -var removeHook = __nccwpck_require__(6819); - -// bind with array of arguments: https://stackoverflow.com/a/21792913 -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; -// expose constructors as a named property for TypeScript -module.exports.Hook = Hook; -module.exports.Singular = Hook.Singular; -module.exports.Collection = Hook.Collection; - - -/***/ }), - -/***/ 5549: -/***/ ((module) => { - -module.exports = addHook; - -function addHook(state, kind, name, hook) { - var orig = hook; - if (!state.registry[name]) { - state.registry[name] = []; - } - - if (kind === "before") { - hook = function (method, options) { - return Promise.resolve() - .then(orig.bind(null, options)) - .then(method.bind(null, options)); - }; - } - - if (kind === "after") { - 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 (kind === "error") { - 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, - }); -} - - -/***/ }), - -/***/ 4670: -/***/ ((module) => { - -module.exports = register; - -function register(state, name, method, options) { - if (typeof method !== "function") { - throw new Error("method for before hook must be a function"); - } - - if (!options) { - options = {}; - } - - if (Array.isArray(name)) { - return name.reverse().reduce(function (callback, 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)(); - }); -} - - -/***/ }), - -/***/ 6819: -/***/ ((module) => { - -module.exports = removeHook; - -function removeHook(state, name, method) { - if (!state.registry[name]) { - return; - } - - var index = state.registry[name] - .map(function (registered) { - return registered.orig; - }) - .indexOf(method); - - if (index === -1) { - return; - } - - state.registry[name].splice(index, 1); -} - - -/***/ }), - -/***/ 3717: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var balanced = __nccwpck_require__(9417); - -module.exports = expandTop; - -var escSlash = '\0SLASH'+Math.random()+'\0'; -var escOpen = '\0OPEN'+Math.random()+'\0'; -var escClose = '\0CLOSE'+Math.random()+'\0'; -var escComma = '\0COMMA'+Math.random()+'\0'; -var escPeriod = '\0PERIOD'+Math.random()+'\0'; - -function numeric(str) { - return parseInt(str, 10) == str - ? parseInt(str, 10) - : str.charCodeAt(0); -} - -function escapeBraces(str) { - return str.split('\\\\').join(escSlash) - .split('\\{').join(escOpen) - .split('\\}').join(escClose) - .split('\\,').join(escComma) - .split('\\.').join(escPeriod); -} - -function unescapeBraces(str) { - return str.split(escSlash).join('\\') - .split(escOpen).join('{') - .split(escClose).join('}') - .split(escComma).join(',') - .split(escPeriod).join('.'); -} - - -// Basically just str.split(","), but handling cases -// where we have nested braced sections, which should be -// treated as individual members, like {a,{b,c},d} -function parseCommaParts(str) { - if (!str) - return ['']; - - var parts = []; - var m = balanced('{', '}', str); - - if (!m) - return str.split(','); - - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(','); - - p[p.length-1] += '{' + body + '}'; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length-1] += postParts.shift(); - p.push.apply(p, postParts); - } - - parts.push.apply(parts, p); - - return parts; -} - -function expandTop(str) { - if (!str) - return []; - - // I don't know why Bash 4.3 does this, but it does. - // Anything starting with {} will have the first two bytes preserved - // but *only* at the top level, so {},a}b will not expand to anything, - // but a{},b}c will be expanded to [a}c,abc]. - // One could argue that this is a bug in Bash, but since the goal of - // this module is to match Bash's rules, we escape a leading {} - if (str.substr(0, 2) === '{}') { - str = '\\{\\}' + str.substr(2); - } - - return expand(escapeBraces(str), true).map(unescapeBraces); -} - -function embrace(str) { - return '{' + str + '}'; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} - -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} - -function expand(str, isTop) { - var expansions = []; - - var m = balanced('{', '}', str); - if (!m) return [str]; - - // no need to expand pre, since it is guaranteed to be free of brace-sets - var pre = m.pre; - var post = m.post.length - ? expand(m.post, false) - : ['']; - - if (/\$$/.test(m.pre)) { - for (var k = 0; k < post.length; k++) { - var expansion = pre+ '{' + m.body + '}' + post[k]; - expansions.push(expansion); - } - } else { - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(',') >= 0; - if (!isSequence && !isOptions) { - // {a},b} - if (m.post.match(/,.*\}/)) { - str = m.pre + '{' + m.body + escClose + m.post; - return expand(str); - } - return [str]; - } - - var n; - if (isSequence) { - n = m.body.split(/\.\./); - } else { - n = parseCommaParts(m.body); - if (n.length === 1) { - // x{{a,b}}y ==> x{a}y x{b}y - n = expand(n[0], false).map(embrace); - if (n.length === 1) { - return post.map(function(p) { - return m.pre + n[0] + p; - }); - } - } - } - - // at this point, n is the parts, and we know it's not a comma set - // with a single entry. - var N; - - if (isSequence) { - var x = numeric(n[0]); - var y = numeric(n[1]); - var width = Math.max(n[0].length, n[1].length) - var incr = n.length == 3 - ? Math.abs(numeric(n[2])) - : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad = n.some(isPadded); - - N = []; - - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === '\\') - c = ''; - } else { - c = String(i); - if (pad) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join('0'); - if (i < 0) - c = '-' + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = []; - - for (var j = 0; j < n.length; j++) { - N.push.apply(N, expand(n[j], false)); - } - } - - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - } - - return expansions; -} - - - -/***/ }), - -/***/ 2028: -/***/ ((module) => { - -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var w = d * 7; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} [options] - * @throws {Error} throw an error if val is not a non-empty string or a number - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse(val); - } else if (type === 'number' && isFinite(val)) { - return options.long ? fmtLong(val) : fmtShort(val); - } - throw new Error( - 'val is not a non-empty string or a valid number. val=' + - JSON.stringify(val) - ); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = String(str); - if (str.length > 100) { - return; - } - var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'weeks': - case 'week': - case 'w': - return n * w; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtShort(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return Math.round(ms / d) + 'd'; - } - if (msAbs >= h) { - return Math.round(ms / h) + 'h'; - } - if (msAbs >= m) { - return Math.round(ms / m) + 'm'; - } - if (msAbs >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtLong(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return plural(ms, msAbs, d, 'day'); - } - if (msAbs >= h) { - return plural(ms, msAbs, h, 'hour'); - } - if (msAbs >= m) { - return plural(ms, msAbs, m, 'minute'); - } - if (msAbs >= s) { - return plural(ms, msAbs, s, 'second'); - } - return ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, msAbs, n, name) { - var isPlural = msAbs >= n * 1.5; - return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); -} - - -/***/ }), - -/***/ 8222: -/***/ ((module, exports, __nccwpck_require__) => { - -/* eslint-env browser */ - -/** - * This is the web browser implementation of `debug()`. - */ - -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = localstorage(); -exports.destroy = (() => { - let warned = false; - - return () => { - if (!warned) { - warned = true; - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - }; -})(); - -/** - * Colors. - */ - -exports.colors = [ - '#0000CC', - '#0000FF', - '#0033CC', - '#0033FF', - '#0066CC', - '#0066FF', - '#0099CC', - '#0099FF', - '#00CC00', - '#00CC33', - '#00CC66', - '#00CC99', - '#00CCCC', - '#00CCFF', - '#3300CC', - '#3300FF', - '#3333CC', - '#3333FF', - '#3366CC', - '#3366FF', - '#3399CC', - '#3399FF', - '#33CC00', - '#33CC33', - '#33CC66', - '#33CC99', - '#33CCCC', - '#33CCFF', - '#6600CC', - '#6600FF', - '#6633CC', - '#6633FF', - '#66CC00', - '#66CC33', - '#9900CC', - '#9900FF', - '#9933CC', - '#9933FF', - '#99CC00', - '#99CC33', - '#CC0000', - '#CC0033', - '#CC0066', - '#CC0099', - '#CC00CC', - '#CC00FF', - '#CC3300', - '#CC3333', - '#CC3366', - '#CC3399', - '#CC33CC', - '#CC33FF', - '#CC6600', - '#CC6633', - '#CC9900', - '#CC9933', - '#CCCC00', - '#CCCC33', - '#FF0000', - '#FF0033', - '#FF0066', - '#FF0099', - '#FF00CC', - '#FF00FF', - '#FF3300', - '#FF3333', - '#FF3366', - '#FF3399', - '#FF33CC', - '#FF33FF', - '#FF6600', - '#FF6633', - '#FF9900', - '#FF9933', - '#FFCC00', - '#FFCC33' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -// eslint-disable-next-line complexity -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { - return true; - } - - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } - - let m; - - // Is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // Is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // Is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31) || - // Double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + - this.namespace + - (this.useColors ? ' %c' : ' ') + - args[0] + - (this.useColors ? '%c ' : ' ') + - '+' + module.exports.humanize(this.diff); - - if (!this.useColors) { - return; - } - - const c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); - - // The final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - let index = 0; - let lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, match => { - if (match === '%%') { - return; - } - index++; - if (match === '%c') { - // We only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); -} - -/** - * Invokes `console.debug()` when available. - * No-op when `console.debug` is not a "function". - * If `console.debug` is not available, falls back - * to `console.log`. - * - * @api public - */ -exports.log = console.debug || console.log || (() => {}); - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem('debug', namespaces); - } else { - exports.storage.removeItem('debug'); - } - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ -function load() { - let r; - try { - r = exports.storage.getItem('debug'); - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } - - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } - - return r; -} - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage() { - try { - // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context - // The Browser also has localStorage in the global context. - return localStorage; - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} - -module.exports = __nccwpck_require__(6243)(exports); - -const {formatters} = module.exports; - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } -}; - - -/***/ }), - -/***/ 6243: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - */ - -function setup(env) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = __nccwpck_require__(2028); - createDebug.destroy = destroy; - - Object.keys(env).forEach(key => { - createDebug[key] = env[key]; - }); - - /** - * The currently active debug mode names, and names to skip. - */ - - createDebug.names = []; - createDebug.skips = []; - - /** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - createDebug.formatters = {}; - - /** - * Selects a color for a debug namespace - * @param {String} namespace The namespace string for the debug instance to be colored - * @return {Number|String} An ANSI color code for the given namespace - * @api private - */ - function selectColor(namespace) { - let hash = 0; - - for (let i = 0; i < namespace.length; i++) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; - - /** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - function createDebug(namespace) { - let prevTime; - let enableOverride = null; - let namespacesCache; - let enabledCache; - - function debug(...args) { - // Disabled? - if (!debug.enabled) { - return; - } - - const self = debug; - - // Set `diff` timestamp - const curr = Number(new Date()); - const ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - args[0] = createDebug.coerce(args[0]); - - if (typeof args[0] !== 'string') { - // Anything else let's inspect with %O - args.unshift('%O'); - } - - // Apply any `formatters` transformations - let index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { - // If we encounter an escaped % then don't increase the array index - if (match === '%%') { - return '%'; - } - index++; - const formatter = createDebug.formatters[format]; - if (typeof formatter === 'function') { - const val = args[index]; - match = formatter.call(self, val); - - // Now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // Apply env-specific formatting (colors, etc.) - createDebug.formatArgs.call(self, args); - - const logFn = self.log || createDebug.log; - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. - - Object.defineProperty(debug, 'enabled', { - enumerable: true, - configurable: false, - get: () => { - if (enableOverride !== null) { - return enableOverride; - } - if (namespacesCache !== createDebug.namespaces) { - namespacesCache = createDebug.namespaces; - enabledCache = createDebug.enabled(namespace); - } - - return enabledCache; - }, - set: v => { - enableOverride = v; - } - }); - - // Env-specific initialization logic for debug instances - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } - - return debug; - } - - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } - - /** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.namespaces = namespaces; - - createDebug.names = []; - createDebug.skips = []; - - let i; - const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - const len = split.length; - - for (i = 0; i < len; i++) { - if (!split[i]) { - // ignore empty strings - continue; - } - - namespaces = split[i].replace(/\*/g, '.*?'); - - if (namespaces[0] === '-') { - createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$')); - } else { - createDebug.names.push(new RegExp('^' + namespaces + '$')); - } - } - } - - /** - * Disable debug output. - * - * @return {String} namespaces - * @api public - */ - function disable() { - const namespaces = [ - ...createDebug.names.map(toNamespace), - ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) - ].join(','); - createDebug.enable(''); - return namespaces; - } - - /** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - function enabled(name) { - if (name[name.length - 1] === '*') { - return true; - } - - let i; - let len; - - for (i = 0, len = createDebug.skips.length; i < len; i++) { - if (createDebug.skips[i].test(name)) { - return false; - } - } - - for (i = 0, len = createDebug.names.length; i < len; i++) { - if (createDebug.names[i].test(name)) { - return true; - } - } - - return false; - } - - /** - * Convert regexp to namespace - * - * @param {RegExp} regxep - * @return {String} namespace - * @api private - */ - function toNamespace(regexp) { - return regexp.toString() - .substring(2, regexp.toString().length - 2) - .replace(/\.\*\?$/, '*'); - } - - /** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } - - /** - * XXX DO NOT USE. This is a temporary stub function. - * XXX It WILL be removed in the next major release. - */ - function destroy() { - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - - createDebug.enable(createDebug.load()); - - return createDebug; -} - -module.exports = setup; - - -/***/ }), - -/***/ 8237: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -/** - * Detect Electron renderer / nwjs process, which is node, but we should - * treat as a browser. - */ - -if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { - module.exports = __nccwpck_require__(8222); -} else { - module.exports = __nccwpck_require__(4874); -} - - -/***/ }), - -/***/ 4874: -/***/ ((module, exports, __nccwpck_require__) => { - -/** - * Module dependencies. - */ - -const tty = __nccwpck_require__(6224); -const util = __nccwpck_require__(3837); - -/** - * This is the Node.js implementation of `debug()`. - */ - -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.destroy = util.deprecate( - () => {}, - 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' -); - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -try { - // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) - // eslint-disable-next-line import/no-extraneous-dependencies - const supportsColor = __nccwpck_require__(132); - - if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { - exports.colors = [ - 20, - 21, - 26, - 27, - 32, - 33, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 56, - 57, - 62, - 63, - 68, - 69, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 92, - 93, - 98, - 99, - 112, - 113, - 128, - 129, - 134, - 135, - 148, - 149, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 178, - 179, - 184, - 185, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 214, - 215, - 220, - 221 - ]; - } -} catch (error) { - // Swallow - we only care if `supports-color` is available; it doesn't have to be. -} - -/** - * Build up the default `inspectOpts` object from the environment variables. - * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js - */ - -exports.inspectOpts = Object.keys(process.env).filter(key => { - return /^debug_/i.test(key); -}).reduce((obj, key) => { - // Camel-case - const prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, (_, k) => { - return k.toUpperCase(); - }); - - // Coerce string value into JS value - let val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === 'null') { - val = null; - } else { - val = Number(val); - } - - obj[prop] = val; - return obj; -}, {}); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - return 'colors' in exports.inspectOpts ? - Boolean(exports.inspectOpts.colors) : - tty.isatty(process.stderr.fd); -} - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs(args) { - const {namespace: name, useColors} = this; - - if (useColors) { - const c = this.color; - const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); - const prefix = ` ${colorCode};1m${name} \u001B[0m`; - - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); - } else { - args[0] = getDate() + name + ' ' + args[0]; - } -} - -function getDate() { - if (exports.inspectOpts.hideDate) { - return ''; - } - return new Date().toISOString() + ' '; -} - -/** - * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr. - */ - -function log(...args) { - return process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; - } else { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Init logic for `debug` instances. - * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. - */ - -function init(debug) { - debug.inspectOpts = {}; - - const keys = Object.keys(exports.inspectOpts); - for (let i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} - -module.exports = __nccwpck_require__(6243)(exports); - -const {formatters} = module.exports; - -/** - * Map %o to `util.inspect()`, all on a single line. - */ - -formatters.o = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .split('\n') - .map(str => str.trim()) - .join(' '); -}; - -/** - * Map %O to `util.inspect()`, allowing multiple lines if needed. - */ - -formatters.O = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); -}; - - -/***/ }), - -/***/ 8932: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -class Deprecation extends Error { - constructor(message) { - super(message); // Maintains proper stack trace (only available on V8) - - /* istanbul ignore next */ - - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } - - this.name = 'Deprecation'; - } - -} - -exports.Deprecation = Deprecation; - - -/***/ }), - -/***/ 4697: -/***/ ((module, exports) => { - -"use strict"; -/** - * @author Toru Nagashima - * @copyright 2015 Toru Nagashima. All rights reserved. - * See LICENSE file in root directory for full license. - */ - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -/** - * @typedef {object} PrivateData - * @property {EventTarget} eventTarget The event target. - * @property {{type:string}} event The original event object. - * @property {number} eventPhase The current event phase. - * @property {EventTarget|null} currentTarget The current event target. - * @property {boolean} canceled The flag to prevent default. - * @property {boolean} stopped The flag to stop propagation. - * @property {boolean} immediateStopped The flag to stop propagation immediately. - * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null. - * @property {number} timeStamp The unix time. - * @private - */ - -/** - * Private data for event wrappers. - * @type {WeakMap} - * @private - */ -const privateData = new WeakMap(); - -/** - * Cache for wrapper classes. - * @type {WeakMap} - * @private - */ -const wrappers = new WeakMap(); - -/** - * Get private data. - * @param {Event} event The event object to get private data. - * @returns {PrivateData} The private data of the event. - * @private - */ -function pd(event) { - const retv = privateData.get(event); - console.assert( - retv != null, - "'this' is expected an Event object, but got", - event - ); - return retv -} - -/** - * https://dom.spec.whatwg.org/#set-the-canceled-flag - * @param data {PrivateData} private data. - */ -function setCancelFlag(data) { - if (data.passiveListener != null) { + })(); + + /** + * Colors. + */ + + exports.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33", + ]; + + /** + * Currently only WebKit-based Web Inspectors, Firefox >= v31, + * and the Firebug extension (any Firefox version) are known + * to support "%c" CSS customizations. + * + * TODO: add a `localStorage` variable to explicitly enable/disable colors + */ + + // eslint-disable-next-line complexity + function useColors() { + // NB: In an Electron preload script, document will be defined but not fully + // initialized. Since we know we're in Chrome, we'll just detect this case + // explicitly if ( + typeof window !== "undefined" && + window.process && + (window.process.type === "renderer" || window.process.__nwjs) + ) { + return true; + } + + // Internet Explorer and Edge do not support colors. + if ( + typeof navigator !== "undefined" && + navigator.userAgent && + navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/) + ) { + return false; + } + + let m; + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + return ( + (typeof document !== "undefined" && + document.documentElement && + document.documentElement.style && + document.documentElement.style.WebkitAppearance) || + // Is firebug? http://stackoverflow.com/a/398120/376773 + (typeof window !== "undefined" && + window.console && + (window.console.firebug || + (window.console.exception && window.console.table))) || + // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + (typeof navigator !== "undefined" && + navigator.userAgent && + (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && + parseInt(m[1], 10) >= 31) || + // Double check webkit in userAgent just in case we are in a worker + (typeof navigator !== "undefined" && + navigator.userAgent && + navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)) + ); + } + + /** + * Colorize log arguments if enabled. + * + * @api public + */ + + function formatArgs(args) { + args[0] = + (this.useColors ? "%c" : "") + + this.namespace + + (this.useColors ? " %c" : " ") + + args[0] + + (this.useColors ? "%c " : " ") + + "+" + + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + + // The final "%c" is somewhat tricky, because there could be other + // arguments passed either before or after the %c, so we need to + // figure out the correct index to insert the CSS into + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { + return; + } + index++; + if (match === "%c") { + // We only are interested in the *last* %c + // (the user may have provided their own) + lastC = index; + } + }); + + args.splice(lastC, 0, c); + } + + /** + * Invokes `console.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ + exports.log = console.debug || console.log || (() => {}); + + /** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem("debug", namespaces); + } else { + exports.storage.removeItem("debug"); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + } + + /** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + function load() { + let r; + try { + r = exports.storage.getItem("debug"); + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + + // If debug isn't set in LS, and we're in Electron, try to load $DEBUG + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + + return r; + } + + /** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + + function localstorage() { + try { + // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context + // The Browser also has localStorage in the global context. + return localStorage; + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } + } + + module.exports = __nccwpck_require__(6243)(exports); + + const { formatters } = module.exports; + + /** + * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. + */ + + formatters.j = function (v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; + + /***/ + }, + + /***/ 6243: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + /** + * This is the common logic for both the Node.js and web browser + * implementations of `debug()`. + */ + + function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = __nccwpck_require__(2028); + createDebug.destroy = destroy; + + Object.keys(env).forEach((key) => { + createDebug[key] = env[key]; + }); + + /** + * The currently active debug mode names, and names to skip. + */ + + createDebug.names = []; + createDebug.skips = []; + + /** + * Map of special "%n" handling functions, for the debug "format" argument. + * + * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". + */ + createDebug.formatters = {}; + + /** + * Selects a color for a debug namespace + * @param {String} namespace The namespace string for the debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let i = 0; i < namespace.length; i++) { + hash = (hash << 5) - hash + namespace.charCodeAt(i); + hash |= 0; // Convert to 32bit integer + } + + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + + /** + * Create a debugger with the given `namespace`. + * + * @param {String} namespace + * @return {Function} + * @api public + */ + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self.diff = ms; + self.prev = prevTime; + self.curr = curr; + prevTime = curr; + + args[0] = createDebug.coerce(args[0]); + + if (typeof args[0] !== "string") { + // Anything else let's inspect with %O + args.unshift("%O"); + } + + // Apply any `formatters` transformations + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === "%%") { + return "%"; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index]; + match = formatter.call(self, val); + + // Now we need to remove `args[index]` since it's inlined in the `format` + args.splice(index, 1); + index--; + } + return match; + }); + + // Apply env-specific formatting (colors, etc.) + createDebug.formatArgs.call(self, args); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, "enabled", { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + + return enabledCache; + }, + set: (v) => { + enableOverride = v; + }, + }); + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === "function") { + createDebug.init(debug); + } + + return debug; + } + + function extend(namespace, delimiter) { + const newDebug = createDebug( + this.namespace + + (typeof delimiter === "undefined" ? ":" : delimiter) + + namespace + ); + newDebug.log = this.log; + return newDebug; + } + + /** + * Enables a debug mode by namespaces. This can include modes + * separated by a colon and wildcards. + * + * @param {String} namespaces + * @api public + */ + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + + createDebug.names = []; + createDebug.skips = []; + + let i; + const split = ( + typeof namespaces === "string" ? namespaces : "" + ).split(/[\s,]+/); + const len = split.length; + + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } + + namespaces = split[i].replace(/\*/g, ".*?"); + + if (namespaces[0] === "-") { + createDebug.skips.push( + new RegExp("^" + namespaces.slice(1) + "$") + ); + } else { + createDebug.names.push(new RegExp("^" + namespaces + "$")); + } + } + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips + .map(toNamespace) + .map((namespace) => "-" + namespace), + ].join(","); + createDebug.enable(""); + return namespaces; + } + + /** + * Returns true if the given mode name is enabled, false otherwise. + * + * @param {String} name + * @return {Boolean} + * @api public + */ + function enabled(name) { + if (name[name.length - 1] === "*") { + return true; + } + + let i; + let len; + + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + + return false; + } + + /** + * Convert regexp to namespace + * + * @param {RegExp} regxep + * @return {String} namespace + * @api private + */ + function toNamespace(regexp) { + return regexp + .toString() + .substring(2, regexp.toString().length - 2) + .replace(/\.\*\?$/, "*"); + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn( + "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`." + ); + } + + createDebug.enable(createDebug.load()); + + return createDebug; + } + + module.exports = setup; + + /***/ + }, + + /***/ 8237: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + /** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ + + if ( + typeof process === "undefined" || + process.type === "renderer" || + process.browser === true || + process.__nwjs + ) { + module.exports = __nccwpck_require__(8222); + } else { + module.exports = __nccwpck_require__(4874); + } + + /***/ + }, + + /***/ 4874: /***/ (module, exports, __nccwpck_require__) => { + /** + * Module dependencies. + */ + + const tty = __nccwpck_require__(6224); + const util = __nccwpck_require__(3837); + + /** + * This is the Node.js implementation of `debug()`. + */ + + exports.init = init; + exports.log = log; + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.destroy = util.deprecate(() => {}, + "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + + /** + * Colors. + */ + + exports.colors = [6, 2, 3, 4, 5, 1]; + + try { + // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) + // eslint-disable-next-line import/no-extraneous-dependencies + const supportsColor = __nccwpck_require__(132); + + if ( + supportsColor && + (supportsColor.stderr || supportsColor).level >= 2 + ) { + exports.colors = [ + 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, + 63, 68, 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, + 113, 128, 129, 134, 135, 148, 149, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 178, 179, 184, 185, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 214, 215, 220, 221, + ]; + } + } catch (error) { + // Swallow - we only care if `supports-color` is available; it doesn't have to be. + } + + /** + * Build up the default `inspectOpts` object from the environment variables. + * + * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js + */ + + exports.inspectOpts = Object.keys(process.env) + .filter((key) => { + return /^debug_/i.test(key); + }) + .reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let val = process.env[key]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === "null") { + val = null; + } else { + val = Number(val); + } + + obj[prop] = val; + return obj; + }, {}); + + /** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + + function useColors() { + return "colors" in exports.inspectOpts + ? Boolean(exports.inspectOpts.colors) + : tty.isatty(process.stderr.fd); + } + + /** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + + function formatArgs(args) { + const { namespace: name, useColors } = this; + + if (useColors) { + const c = this.color; + const colorCode = "\u001B[3" + (c < 8 ? c : "8;5;" + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split("\n").join("\n" + prefix); + args.push( + colorCode + "m+" + module.exports.humanize(this.diff) + "\u001B[0m" + ); + } else { + args[0] = getDate() + name + " " + args[0]; + } + } + + function getDate() { + if (exports.inspectOpts.hideDate) { + return ""; + } + return new Date().toISOString() + " "; + } + + /** + * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr. + */ + + function log(...args) { + return process.stderr.write( + util.formatWithOptions(exports.inspectOpts, ...args) + "\n" + ); + } + + /** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ + function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + // If you set a process.env field to null or undefined, it gets cast to the + // string 'null' or 'undefined'. Just delete instead. + delete process.env.DEBUG; + } + } + + /** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + + function load() { + return process.env.DEBUG; + } + + /** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + + function init(debug) { + debug.inspectOpts = {}; + + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } + } + + module.exports = __nccwpck_require__(6243)(exports); + + const { formatters } = module.exports; + + /** + * Map %o to `util.inspect()`, all on a single line. + */ + + formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util + .inspect(v, this.inspectOpts) + .split("\n") + .map((str) => str.trim()) + .join(" "); + }; + + /** + * Map %O to `util.inspect()`, allowing multiple lines if needed. + */ + + formatters.O = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); + }; + + /***/ + }, + + /***/ 8932: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = "Deprecation"; + } + } + + exports.Deprecation = Deprecation; + + /***/ + }, + + /***/ 4697: /***/ (module, exports) => { + "use strict"; + /** + * @author Toru Nagashima + * @copyright 2015 Toru Nagashima. All rights reserved. + * See LICENSE file in root directory for full license. + */ + + Object.defineProperty(exports, "__esModule", { value: true }); + + /** + * @typedef {object} PrivateData + * @property {EventTarget} eventTarget The event target. + * @property {{type:string}} event The original event object. + * @property {number} eventPhase The current event phase. + * @property {EventTarget|null} currentTarget The current event target. + * @property {boolean} canceled The flag to prevent default. + * @property {boolean} stopped The flag to stop propagation. + * @property {boolean} immediateStopped The flag to stop propagation immediately. + * @property {Function|null} passiveListener The listener if the current listener is passive. Otherwise this is null. + * @property {number} timeStamp The unix time. + * @private + */ + + /** + * Private data for event wrappers. + * @type {WeakMap} + * @private + */ + const privateData = new WeakMap(); + + /** + * Cache for wrapper classes. + * @type {WeakMap} + * @private + */ + const wrappers = new WeakMap(); + + /** + * Get private data. + * @param {Event} event The event object to get private data. + * @returns {PrivateData} The private data of the event. + * @private + */ + function pd(event) { + const retv = privateData.get(event); + console.assert( + retv != null, + "'this' is expected an Event object, but got", + event + ); + return retv; + } + + /** + * https://dom.spec.whatwg.org/#set-the-canceled-flag + * @param data {PrivateData} private data. + */ + function setCancelFlag(data) { + if (data.passiveListener != null) { + if ( typeof console !== "undefined" && typeof console.error === "function" - ) { + ) { console.error( - "Unable to preventDefault inside passive event listener invocation.", - data.passiveListener + "Unable to preventDefault inside passive event listener invocation.", + data.passiveListener ); + } + return; + } + if (!data.event.cancelable) { + return; } - return - } - if (!data.event.cancelable) { - return - } - data.canceled = true; - if (typeof data.event.preventDefault === "function") { - data.event.preventDefault(); - } -} + data.canceled = true; + if (typeof data.event.preventDefault === "function") { + data.event.preventDefault(); + } + } -/** - * @see https://dom.spec.whatwg.org/#interface-event - * @private - */ -/** - * The event wrapper. - * @constructor - * @param {EventTarget} eventTarget The event target of this dispatching. - * @param {Event|{type:string}} event The original event to wrap. - */ -function Event(eventTarget, event) { - privateData.set(this, { - eventTarget, - event, - eventPhase: 2, - currentTarget: eventTarget, - canceled: false, - stopped: false, - immediateStopped: false, - passiveListener: null, - timeStamp: event.timeStamp || Date.now(), - }); + /** + * @see https://dom.spec.whatwg.org/#interface-event + * @private + */ + /** + * The event wrapper. + * @constructor + * @param {EventTarget} eventTarget The event target of this dispatching. + * @param {Event|{type:string}} event The original event to wrap. + */ + function Event(eventTarget, event) { + privateData.set(this, { + eventTarget, + event, + eventPhase: 2, + currentTarget: eventTarget, + canceled: false, + stopped: false, + immediateStopped: false, + passiveListener: null, + timeStamp: event.timeStamp || Date.now(), + }); - // https://heycam.github.io/webidl/#Unforgeable - Object.defineProperty(this, "isTrusted", { value: false, enumerable: true }); + // https://heycam.github.io/webidl/#Unforgeable + Object.defineProperty(this, "isTrusted", { + value: false, + enumerable: true, + }); - // Define accessors - const keys = Object.keys(event); - for (let i = 0; i < keys.length; ++i) { - const key = keys[i]; - if (!(key in this)) { + // Define accessors + const keys = Object.keys(event); + for (let i = 0; i < keys.length; ++i) { + const key = keys[i]; + if (!(key in this)) { Object.defineProperty(this, key, defineRedirectDescriptor(key)); + } } - } -} + } -// Should be enumerable, but class methods are not enumerable. -Event.prototype = { - /** - * The type of this event. - * @type {string} - */ - get type() { - return pd(this).event.type - }, + // Should be enumerable, but class methods are not enumerable. + Event.prototype = { + /** + * The type of this event. + * @type {string} + */ + get type() { + return pd(this).event.type; + }, - /** - * The target of this event. - * @type {EventTarget} - */ - get target() { - return pd(this).eventTarget - }, + /** + * The target of this event. + * @type {EventTarget} + */ + get target() { + return pd(this).eventTarget; + }, - /** - * The target of this event. - * @type {EventTarget} - */ - get currentTarget() { - return pd(this).currentTarget - }, + /** + * The target of this event. + * @type {EventTarget} + */ + get currentTarget() { + return pd(this).currentTarget; + }, - /** - * @returns {EventTarget[]} The composed path of this event. - */ - composedPath() { - const currentTarget = pd(this).currentTarget; - if (currentTarget == null) { - return [] - } - return [currentTarget] - }, + /** + * @returns {EventTarget[]} The composed path of this event. + */ + composedPath() { + const currentTarget = pd(this).currentTarget; + if (currentTarget == null) { + return []; + } + return [currentTarget]; + }, - /** - * Constant of NONE. - * @type {number} - */ - get NONE() { - return 0 - }, + /** + * Constant of NONE. + * @type {number} + */ + get NONE() { + return 0; + }, - /** - * Constant of CAPTURING_PHASE. - * @type {number} - */ - get CAPTURING_PHASE() { - return 1 - }, + /** + * Constant of CAPTURING_PHASE. + * @type {number} + */ + get CAPTURING_PHASE() { + return 1; + }, - /** - * Constant of AT_TARGET. - * @type {number} - */ - get AT_TARGET() { - return 2 - }, + /** + * Constant of AT_TARGET. + * @type {number} + */ + get AT_TARGET() { + return 2; + }, - /** - * Constant of BUBBLING_PHASE. - * @type {number} - */ - get BUBBLING_PHASE() { - return 3 - }, + /** + * Constant of BUBBLING_PHASE. + * @type {number} + */ + get BUBBLING_PHASE() { + return 3; + }, - /** - * The target of this event. - * @type {number} - */ - get eventPhase() { - return pd(this).eventPhase - }, + /** + * The target of this event. + * @type {number} + */ + get eventPhase() { + return pd(this).eventPhase; + }, - /** - * Stop event bubbling. - * @returns {void} - */ - stopPropagation() { - const data = pd(this); + /** + * Stop event bubbling. + * @returns {void} + */ + stopPropagation() { + const data = pd(this); - data.stopped = true; - if (typeof data.event.stopPropagation === "function") { + data.stopped = true; + if (typeof data.event.stopPropagation === "function") { data.event.stopPropagation(); - } - }, + } + }, - /** - * Stop event bubbling. - * @returns {void} - */ - stopImmediatePropagation() { - const data = pd(this); + /** + * Stop event bubbling. + * @returns {void} + */ + stopImmediatePropagation() { + const data = pd(this); - data.stopped = true; - data.immediateStopped = true; - if (typeof data.event.stopImmediatePropagation === "function") { + data.stopped = true; + data.immediateStopped = true; + if (typeof data.event.stopImmediatePropagation === "function") { data.event.stopImmediatePropagation(); - } - }, + } + }, - /** - * The flag to be bubbling. - * @type {boolean} - */ - get bubbles() { - return Boolean(pd(this).event.bubbles) - }, + /** + * The flag to be bubbling. + * @type {boolean} + */ + get bubbles() { + return Boolean(pd(this).event.bubbles); + }, - /** - * The flag to be cancelable. - * @type {boolean} - */ - get cancelable() { - return Boolean(pd(this).event.cancelable) - }, + /** + * The flag to be cancelable. + * @type {boolean} + */ + get cancelable() { + return Boolean(pd(this).event.cancelable); + }, - /** - * Cancel this event. - * @returns {void} - */ - preventDefault() { - setCancelFlag(pd(this)); - }, + /** + * Cancel this event. + * @returns {void} + */ + preventDefault() { + setCancelFlag(pd(this)); + }, - /** - * The flag to indicate cancellation state. - * @type {boolean} - */ - get defaultPrevented() { - return pd(this).canceled - }, + /** + * The flag to indicate cancellation state. + * @type {boolean} + */ + get defaultPrevented() { + return pd(this).canceled; + }, - /** - * The flag to be composed. - * @type {boolean} - */ - get composed() { - return Boolean(pd(this).event.composed) - }, + /** + * The flag to be composed. + * @type {boolean} + */ + get composed() { + return Boolean(pd(this).event.composed); + }, - /** - * The unix time of this event. - * @type {number} - */ - get timeStamp() { - return pd(this).timeStamp - }, + /** + * The unix time of this event. + * @type {number} + */ + get timeStamp() { + return pd(this).timeStamp; + }, - /** - * The target of this event. - * @type {EventTarget} - * @deprecated - */ - get srcElement() { - return pd(this).eventTarget - }, + /** + * The target of this event. + * @type {EventTarget} + * @deprecated + */ + get srcElement() { + return pd(this).eventTarget; + }, - /** - * The flag to stop event bubbling. - * @type {boolean} - * @deprecated - */ - get cancelBubble() { - return pd(this).stopped - }, - set cancelBubble(value) { - if (!value) { - return - } - const data = pd(this); + /** + * The flag to stop event bubbling. + * @type {boolean} + * @deprecated + */ + get cancelBubble() { + return pd(this).stopped; + }, + set cancelBubble(value) { + if (!value) { + return; + } + const data = pd(this); - data.stopped = true; - if (typeof data.event.cancelBubble === "boolean") { + data.stopped = true; + if (typeof data.event.cancelBubble === "boolean") { data.event.cancelBubble = true; - } - }, + } + }, - /** - * The flag to indicate cancellation state. - * @type {boolean} - * @deprecated - */ - get returnValue() { - return !pd(this).canceled - }, - set returnValue(value) { - if (!value) { + /** + * The flag to indicate cancellation state. + * @type {boolean} + * @deprecated + */ + get returnValue() { + return !pd(this).canceled; + }, + set returnValue(value) { + if (!value) { setCancelFlag(pd(this)); - } - }, - - /** - * Initialize this event object. But do nothing under event dispatching. - * @param {string} type The event type. - * @param {boolean} [bubbles=false] The flag to be possible to bubble up. - * @param {boolean} [cancelable=false] The flag to be possible to cancel. - * @deprecated - */ - initEvent() { - // Do nothing. - }, -}; - -// `constructor` is not enumerable. -Object.defineProperty(Event.prototype, "constructor", { - value: Event, - configurable: true, - writable: true, -}); - -// Ensure `event instanceof window.Event` is `true`. -if (typeof window !== "undefined" && typeof window.Event !== "undefined") { - Object.setPrototypeOf(Event.prototype, window.Event.prototype); - - // Make association for wrappers. - wrappers.set(window.Event.prototype, Event); -} - -/** - * Get the property descriptor to redirect a given property. - * @param {string} key Property name to define property descriptor. - * @returns {PropertyDescriptor} The property descriptor to redirect the property. - * @private - */ -function defineRedirectDescriptor(key) { - return { - get() { - return pd(this).event[key] + } }, - set(value) { + + /** + * Initialize this event object. But do nothing under event dispatching. + * @param {string} type The event type. + * @param {boolean} [bubbles=false] The flag to be possible to bubble up. + * @param {boolean} [cancelable=false] The flag to be possible to cancel. + * @deprecated + */ + initEvent() { + // Do nothing. + }, + }; + + // `constructor` is not enumerable. + Object.defineProperty(Event.prototype, "constructor", { + value: Event, + configurable: true, + writable: true, + }); + + // Ensure `event instanceof window.Event` is `true`. + if ( + typeof window !== "undefined" && + typeof window.Event !== "undefined" + ) { + Object.setPrototypeOf(Event.prototype, window.Event.prototype); + + // Make association for wrappers. + wrappers.set(window.Event.prototype, Event); + } + + /** + * Get the property descriptor to redirect a given property. + * @param {string} key Property name to define property descriptor. + * @returns {PropertyDescriptor} The property descriptor to redirect the property. + * @private + */ + function defineRedirectDescriptor(key) { + return { + get() { + return pd(this).event[key]; + }, + set(value) { pd(this).event[key] = value; - }, - configurable: true, - enumerable: true, - } -} + }, + configurable: true, + enumerable: true, + }; + } -/** - * Get the property descriptor to call a given method property. - * @param {string} key Property name to define property descriptor. - * @returns {PropertyDescriptor} The property descriptor to call the method property. - * @private - */ -function defineCallDescriptor(key) { - return { - value() { + /** + * Get the property descriptor to call a given method property. + * @param {string} key Property name to define property descriptor. + * @returns {PropertyDescriptor} The property descriptor to call the method property. + * @private + */ + function defineCallDescriptor(key) { + return { + value() { const event = pd(this).event; - return event[key].apply(event, arguments) - }, - configurable: true, - enumerable: true, - } -} + return event[key].apply(event, arguments); + }, + configurable: true, + enumerable: true, + }; + } -/** - * Define new wrapper class. - * @param {Function} BaseEvent The base wrapper class. - * @param {Object} proto The prototype of the original event. - * @returns {Function} The defined wrapper class. - * @private - */ -function defineWrapper(BaseEvent, proto) { - const keys = Object.keys(proto); - if (keys.length === 0) { - return BaseEvent - } + /** + * Define new wrapper class. + * @param {Function} BaseEvent The base wrapper class. + * @param {Object} proto The prototype of the original event. + * @returns {Function} The defined wrapper class. + * @private + */ + function defineWrapper(BaseEvent, proto) { + const keys = Object.keys(proto); + if (keys.length === 0) { + return BaseEvent; + } - /** CustomEvent */ - function CustomEvent(eventTarget, event) { - BaseEvent.call(this, eventTarget, event); - } + /** CustomEvent */ + function CustomEvent(eventTarget, event) { + BaseEvent.call(this, eventTarget, event); + } - CustomEvent.prototype = Object.create(BaseEvent.prototype, { - constructor: { value: CustomEvent, configurable: true, writable: true }, - }); + CustomEvent.prototype = Object.create(BaseEvent.prototype, { + constructor: { + value: CustomEvent, + configurable: true, + writable: true, + }, + }); - // Define accessors. - for (let i = 0; i < keys.length; ++i) { - const key = keys[i]; - if (!(key in BaseEvent.prototype)) { + // Define accessors. + for (let i = 0; i < keys.length; ++i) { + const key = keys[i]; + if (!(key in BaseEvent.prototype)) { const descriptor = Object.getOwnPropertyDescriptor(proto, key); const isFunc = typeof descriptor.value === "function"; Object.defineProperty( - CustomEvent.prototype, - key, - isFunc - ? defineCallDescriptor(key) - : defineRedirectDescriptor(key) + CustomEvent.prototype, + key, + isFunc ? defineCallDescriptor(key) : defineRedirectDescriptor(key) ); + } } - } - return CustomEvent -} + return CustomEvent; + } -/** - * Get the wrapper class of a given prototype. - * @param {Object} proto The prototype of the original event to get its wrapper. - * @returns {Function} The wrapper class. - * @private - */ -function getWrapper(proto) { - if (proto == null || proto === Object.prototype) { - return Event - } + /** + * Get the wrapper class of a given prototype. + * @param {Object} proto The prototype of the original event to get its wrapper. + * @returns {Function} The wrapper class. + * @private + */ + function getWrapper(proto) { + if (proto == null || proto === Object.prototype) { + return Event; + } - let wrapper = wrappers.get(proto); - if (wrapper == null) { - wrapper = defineWrapper(getWrapper(Object.getPrototypeOf(proto)), proto); - wrappers.set(proto, wrapper); - } - return wrapper -} + let wrapper = wrappers.get(proto); + if (wrapper == null) { + wrapper = defineWrapper( + getWrapper(Object.getPrototypeOf(proto)), + proto + ); + wrappers.set(proto, wrapper); + } + return wrapper; + } -/** - * Wrap a given event to management a dispatching. - * @param {EventTarget} eventTarget The event target of this dispatching. - * @param {Object} event The event to wrap. - * @returns {Event} The wrapper instance. - * @private - */ -function wrapEvent(eventTarget, event) { - const Wrapper = getWrapper(Object.getPrototypeOf(event)); - return new Wrapper(eventTarget, event) -} + /** + * Wrap a given event to management a dispatching. + * @param {EventTarget} eventTarget The event target of this dispatching. + * @param {Object} event The event to wrap. + * @returns {Event} The wrapper instance. + * @private + */ + function wrapEvent(eventTarget, event) { + const Wrapper = getWrapper(Object.getPrototypeOf(event)); + return new Wrapper(eventTarget, event); + } -/** - * Get the immediateStopped flag of a given event. - * @param {Event} event The event to get. - * @returns {boolean} The flag to stop propagation immediately. - * @private - */ -function isStopped(event) { - return pd(event).immediateStopped -} + /** + * Get the immediateStopped flag of a given event. + * @param {Event} event The event to get. + * @returns {boolean} The flag to stop propagation immediately. + * @private + */ + function isStopped(event) { + return pd(event).immediateStopped; + } -/** - * Set the current event phase of a given event. - * @param {Event} event The event to set current target. - * @param {number} eventPhase New event phase. - * @returns {void} - * @private - */ -function setEventPhase(event, eventPhase) { - pd(event).eventPhase = eventPhase; -} + /** + * Set the current event phase of a given event. + * @param {Event} event The event to set current target. + * @param {number} eventPhase New event phase. + * @returns {void} + * @private + */ + function setEventPhase(event, eventPhase) { + pd(event).eventPhase = eventPhase; + } -/** - * Set the current target of a given event. - * @param {Event} event The event to set current target. - * @param {EventTarget|null} currentTarget New current target. - * @returns {void} - * @private - */ -function setCurrentTarget(event, currentTarget) { - pd(event).currentTarget = currentTarget; -} + /** + * Set the current target of a given event. + * @param {Event} event The event to set current target. + * @param {EventTarget|null} currentTarget New current target. + * @returns {void} + * @private + */ + function setCurrentTarget(event, currentTarget) { + pd(event).currentTarget = currentTarget; + } -/** - * Set a passive listener of a given event. - * @param {Event} event The event to set current target. - * @param {Function|null} passiveListener New passive listener. - * @returns {void} - * @private - */ -function setPassiveListener(event, passiveListener) { - pd(event).passiveListener = passiveListener; -} + /** + * Set a passive listener of a given event. + * @param {Event} event The event to set current target. + * @param {Function|null} passiveListener New passive listener. + * @returns {void} + * @private + */ + function setPassiveListener(event, passiveListener) { + pd(event).passiveListener = passiveListener; + } -/** - * @typedef {object} ListenerNode - * @property {Function} listener - * @property {1|2|3} listenerType - * @property {boolean} passive - * @property {boolean} once - * @property {ListenerNode|null} next - * @private - */ + /** + * @typedef {object} ListenerNode + * @property {Function} listener + * @property {1|2|3} listenerType + * @property {boolean} passive + * @property {boolean} once + * @property {ListenerNode|null} next + * @private + */ -/** - * @type {WeakMap>} - * @private - */ -const listenersMap = new WeakMap(); + /** + * @type {WeakMap>} + * @private + */ + const listenersMap = new WeakMap(); -// Listener types -const CAPTURE = 1; -const BUBBLE = 2; -const ATTRIBUTE = 3; + // Listener types + const CAPTURE = 1; + const BUBBLE = 2; + const ATTRIBUTE = 3; -/** - * Check whether a given value is an object or not. - * @param {any} x The value to check. - * @returns {boolean} `true` if the value is an object. - */ -function isObject(x) { - return x !== null && typeof x === "object" //eslint-disable-line no-restricted-syntax -} + /** + * Check whether a given value is an object or not. + * @param {any} x The value to check. + * @returns {boolean} `true` if the value is an object. + */ + function isObject(x) { + return x !== null && typeof x === "object"; //eslint-disable-line no-restricted-syntax + } -/** - * Get listeners. - * @param {EventTarget} eventTarget The event target to get. - * @returns {Map} The listeners. - * @private - */ -function getListeners(eventTarget) { - const listeners = listenersMap.get(eventTarget); - if (listeners == null) { - throw new TypeError( + /** + * Get listeners. + * @param {EventTarget} eventTarget The event target to get. + * @returns {Map} The listeners. + * @private + */ + function getListeners(eventTarget) { + const listeners = listenersMap.get(eventTarget); + if (listeners == null) { + throw new TypeError( "'this' is expected an EventTarget object, but got another value." - ) - } - return listeners -} + ); + } + return listeners; + } -/** - * Get the property descriptor for the event attribute of a given event. - * @param {string} eventName The event name to get property descriptor. - * @returns {PropertyDescriptor} The property descriptor. - * @private - */ -function defineEventAttributeDescriptor(eventName) { - return { - get() { + /** + * Get the property descriptor for the event attribute of a given event. + * @param {string} eventName The event name to get property descriptor. + * @returns {PropertyDescriptor} The property descriptor. + * @private + */ + function defineEventAttributeDescriptor(eventName) { + return { + get() { const listeners = getListeners(this); let node = listeners.get(eventName); while (node != null) { - if (node.listenerType === ATTRIBUTE) { - return node.listener - } - node = node.next; + if (node.listenerType === ATTRIBUTE) { + return node.listener; + } + node = node.next; } - return null - }, + return null; + }, - set(listener) { + set(listener) { if (typeof listener !== "function" && !isObject(listener)) { - listener = null; // eslint-disable-line no-param-reassign + listener = null; // eslint-disable-line no-param-reassign } const listeners = getListeners(this); @@ -6985,7886 +9194,12183 @@ function defineEventAttributeDescriptor(eventName) { let prev = null; let node = listeners.get(eventName); while (node != null) { - if (node.listenerType === ATTRIBUTE) { - // Remove old value. - if (prev !== null) { - prev.next = node.next; - } else if (node.next !== null) { - listeners.set(eventName, node.next); - } else { - listeners.delete(eventName); - } + if (node.listenerType === ATTRIBUTE) { + // Remove old value. + if (prev !== null) { + prev.next = node.next; + } else if (node.next !== null) { + listeners.set(eventName, node.next); } else { - prev = node; + listeners.delete(eventName); } + } else { + prev = node; + } - node = node.next; + node = node.next; } // Add new value. if (listener !== null) { - const newNode = { - listener, - listenerType: ATTRIBUTE, - passive: false, - once: false, - next: null, - }; - if (prev === null) { - listeners.set(eventName, newNode); - } else { - prev.next = newNode; - } + const newNode = { + listener, + listenerType: ATTRIBUTE, + passive: false, + once: false, + next: null, + }; + if (prev === null) { + listeners.set(eventName, newNode); + } else { + prev.next = newNode; + } } - }, - configurable: true, - enumerable: true, - } -} + }, + configurable: true, + enumerable: true, + }; + } -/** - * Define an event attribute (e.g. `eventTarget.onclick`). - * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite. - * @param {string} eventName The event name to define. - * @returns {void} - */ -function defineEventAttribute(eventTargetPrototype, eventName) { - Object.defineProperty( - eventTargetPrototype, - `on${eventName}`, - defineEventAttributeDescriptor(eventName) - ); -} + /** + * Define an event attribute (e.g. `eventTarget.onclick`). + * @param {Object} eventTargetPrototype The event target prototype to define an event attrbite. + * @param {string} eventName The event name to define. + * @returns {void} + */ + function defineEventAttribute(eventTargetPrototype, eventName) { + Object.defineProperty( + eventTargetPrototype, + `on${eventName}`, + defineEventAttributeDescriptor(eventName) + ); + } -/** - * Define a custom EventTarget with event attributes. - * @param {string[]} eventNames Event names for event attributes. - * @returns {EventTarget} The custom EventTarget. - * @private - */ -function defineCustomEventTarget(eventNames) { - /** CustomEventTarget */ - function CustomEventTarget() { - EventTarget.call(this); - } + /** + * Define a custom EventTarget with event attributes. + * @param {string[]} eventNames Event names for event attributes. + * @returns {EventTarget} The custom EventTarget. + * @private + */ + function defineCustomEventTarget(eventNames) { + /** CustomEventTarget */ + function CustomEventTarget() { + EventTarget.call(this); + } - CustomEventTarget.prototype = Object.create(EventTarget.prototype, { - constructor: { + CustomEventTarget.prototype = Object.create(EventTarget.prototype, { + constructor: { value: CustomEventTarget, configurable: true, writable: true, - }, - }); + }, + }); - for (let i = 0; i < eventNames.length; ++i) { - defineEventAttribute(CustomEventTarget.prototype, eventNames[i]); - } + for (let i = 0; i < eventNames.length; ++i) { + defineEventAttribute(CustomEventTarget.prototype, eventNames[i]); + } - return CustomEventTarget -} + return CustomEventTarget; + } -/** - * EventTarget. - * - * - This is constructor if no arguments. - * - This is a function which returns a CustomEventTarget constructor if there are arguments. - * - * For example: - * - * class A extends EventTarget {} - * class B extends EventTarget("message") {} - * class C extends EventTarget("message", "error") {} - * class D extends EventTarget(["message", "error"]) {} - */ -function EventTarget() { - /*eslint-disable consistent-return */ - if (this instanceof EventTarget) { - listenersMap.set(this, new Map()); - return - } - if (arguments.length === 1 && Array.isArray(arguments[0])) { - return defineCustomEventTarget(arguments[0]) - } - if (arguments.length > 0) { - const types = new Array(arguments.length); - for (let i = 0; i < arguments.length; ++i) { + /** + * EventTarget. + * + * - This is constructor if no arguments. + * - This is a function which returns a CustomEventTarget constructor if there are arguments. + * + * For example: + * + * class A extends EventTarget {} + * class B extends EventTarget("message") {} + * class C extends EventTarget("message", "error") {} + * class D extends EventTarget(["message", "error"]) {} + */ + function EventTarget() { + /*eslint-disable consistent-return */ + if (this instanceof EventTarget) { + listenersMap.set(this, new Map()); + return; + } + if (arguments.length === 1 && Array.isArray(arguments[0])) { + return defineCustomEventTarget(arguments[0]); + } + if (arguments.length > 0) { + const types = new Array(arguments.length); + for (let i = 0; i < arguments.length; ++i) { types[i] = arguments[i]; + } + return defineCustomEventTarget(types); } - return defineCustomEventTarget(types) - } - throw new TypeError("Cannot call a class as a function") - /*eslint-enable consistent-return */ -} + throw new TypeError("Cannot call a class as a function"); + /*eslint-enable consistent-return */ + } -// Should be enumerable, but class methods are not enumerable. -EventTarget.prototype = { - /** - * Add a given listener to this event target. - * @param {string} eventName The event name to add. - * @param {Function} listener The listener to add. - * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. - * @returns {void} - */ - addEventListener(eventName, listener, options) { - if (listener == null) { - return - } - if (typeof listener !== "function" && !isObject(listener)) { - throw new TypeError("'listener' should be a function or an object.") - } + // Should be enumerable, but class methods are not enumerable. + EventTarget.prototype = { + /** + * Add a given listener to this event target. + * @param {string} eventName The event name to add. + * @param {Function} listener The listener to add. + * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. + * @returns {void} + */ + addEventListener(eventName, listener, options) { + if (listener == null) { + return; + } + if (typeof listener !== "function" && !isObject(listener)) { + throw new TypeError( + "'listener' should be a function or an object." + ); + } - const listeners = getListeners(this); - const optionsIsObj = isObject(options); - const capture = optionsIsObj + const listeners = getListeners(this); + const optionsIsObj = isObject(options); + const capture = optionsIsObj ? Boolean(options.capture) : Boolean(options); - const listenerType = capture ? CAPTURE : BUBBLE; - const newNode = { + const listenerType = capture ? CAPTURE : BUBBLE; + const newNode = { listener, listenerType, passive: optionsIsObj && Boolean(options.passive), once: optionsIsObj && Boolean(options.once), next: null, - }; + }; - // Set it as the first node if the first node is null. - let node = listeners.get(eventName); - if (node === undefined) { + // Set it as the first node if the first node is null. + let node = listeners.get(eventName); + if (node === undefined) { listeners.set(eventName, newNode); - return - } + return; + } - // Traverse to the tail while checking duplication.. - let prev = null; - while (node != null) { + // Traverse to the tail while checking duplication.. + let prev = null; + while (node != null) { if ( - node.listener === listener && - node.listenerType === listenerType + node.listener === listener && + node.listenerType === listenerType ) { - // Should ignore duplication. - return + // Should ignore duplication. + return; } prev = node; node = node.next; - } + } - // Add it. - prev.next = newNode; - }, + // Add it. + prev.next = newNode; + }, - /** - * Remove a given listener from this event target. - * @param {string} eventName The event name to remove. - * @param {Function} listener The listener to remove. - * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. - * @returns {void} - */ - removeEventListener(eventName, listener, options) { - if (listener == null) { - return - } + /** + * Remove a given listener from this event target. + * @param {string} eventName The event name to remove. + * @param {Function} listener The listener to remove. + * @param {boolean|{capture?:boolean,passive?:boolean,once?:boolean}} [options] The options for this listener. + * @returns {void} + */ + removeEventListener(eventName, listener, options) { + if (listener == null) { + return; + } - const listeners = getListeners(this); - const capture = isObject(options) + const listeners = getListeners(this); + const capture = isObject(options) ? Boolean(options.capture) : Boolean(options); - const listenerType = capture ? CAPTURE : BUBBLE; + const listenerType = capture ? CAPTURE : BUBBLE; - let prev = null; - let node = listeners.get(eventName); - while (node != null) { + let prev = null; + let node = listeners.get(eventName); + while (node != null) { if ( - node.listener === listener && - node.listenerType === listenerType + node.listener === listener && + node.listenerType === listenerType ) { - if (prev !== null) { - prev.next = node.next; - } else if (node.next !== null) { - listeners.set(eventName, node.next); - } else { - listeners.delete(eventName); - } - return + if (prev !== null) { + prev.next = node.next; + } else if (node.next !== null) { + listeners.set(eventName, node.next); + } else { + listeners.delete(eventName); + } + return; } prev = node; node = node.next; - } - }, + } + }, - /** - * Dispatch a given event. - * @param {Event|{type:string}} event The event to dispatch. - * @returns {boolean} `false` if canceled. - */ - dispatchEvent(event) { - if (event == null || typeof event.type !== "string") { - throw new TypeError('"event.type" should be a string.') - } + /** + * Dispatch a given event. + * @param {Event|{type:string}} event The event to dispatch. + * @returns {boolean} `false` if canceled. + */ + dispatchEvent(event) { + if (event == null || typeof event.type !== "string") { + throw new TypeError('"event.type" should be a string.'); + } - // If listeners aren't registered, terminate. - const listeners = getListeners(this); - const eventName = event.type; - let node = listeners.get(eventName); - if (node == null) { - return true - } + // If listeners aren't registered, terminate. + const listeners = getListeners(this); + const eventName = event.type; + let node = listeners.get(eventName); + if (node == null) { + return true; + } - // Since we cannot rewrite several properties, so wrap object. - const wrappedEvent = wrapEvent(this, event); + // Since we cannot rewrite several properties, so wrap object. + const wrappedEvent = wrapEvent(this, event); - // This doesn't process capturing phase and bubbling phase. - // This isn't participating in a tree. - let prev = null; - while (node != null) { + // This doesn't process capturing phase and bubbling phase. + // This isn't participating in a tree. + let prev = null; + while (node != null) { // Remove this listener if it's once if (node.once) { - if (prev !== null) { - prev.next = node.next; - } else if (node.next !== null) { - listeners.set(eventName, node.next); - } else { - listeners.delete(eventName); - } + if (prev !== null) { + prev.next = node.next; + } else if (node.next !== null) { + listeners.set(eventName, node.next); + } else { + listeners.delete(eventName); + } } else { - prev = node; + prev = node; } // Call this listener setPassiveListener( - wrappedEvent, - node.passive ? node.listener : null + wrappedEvent, + node.passive ? node.listener : null ); if (typeof node.listener === "function") { - try { - node.listener.call(this, wrappedEvent); - } catch (err) { - if ( - typeof console !== "undefined" && - typeof console.error === "function" - ) { - console.error(err); - } + try { + node.listener.call(this, wrappedEvent); + } catch (err) { + if ( + typeof console !== "undefined" && + typeof console.error === "function" + ) { + console.error(err); } + } } else if ( - node.listenerType !== ATTRIBUTE && - typeof node.listener.handleEvent === "function" + node.listenerType !== ATTRIBUTE && + typeof node.listener.handleEvent === "function" ) { - node.listener.handleEvent(wrappedEvent); + node.listener.handleEvent(wrappedEvent); } // Break if `event.stopImmediatePropagation` was called. if (isStopped(wrappedEvent)) { - break + break; } node = node.next; + } + setPassiveListener(wrappedEvent, null); + setEventPhase(wrappedEvent, 0); + setCurrentTarget(wrappedEvent, null); + + return !wrappedEvent.defaultPrevented; + }, + }; + + // `constructor` is not enumerable. + Object.defineProperty(EventTarget.prototype, "constructor", { + value: EventTarget, + configurable: true, + writable: true, + }); + + // Ensure `eventTarget instanceof window.EventTarget` is `true`. + if ( + typeof window !== "undefined" && + typeof window.EventTarget !== "undefined" + ) { + Object.setPrototypeOf( + EventTarget.prototype, + window.EventTarget.prototype + ); + } + + exports.defineEventAttribute = defineEventAttribute; + exports.EventTarget = EventTarget; + exports["default"] = EventTarget; + + module.exports = EventTarget; + module.exports.EventTarget = module.exports["default"] = EventTarget; + module.exports.defineEventAttribute = defineEventAttribute; + //# sourceMappingURL=event-target-shim.js.map + + /***/ + }, + + /***/ 6993: /***/ function (__unused_webpack_module, exports) { + /** + * @license + * web-streams-polyfill v4.0.0-beta.3 + * Copyright 2021 Mattias Buelens, Diwank Singh Tomer and other contributors. + * This code is released under the MIT license. + * SPDX-License-Identifier: MIT + */ + !(function (e, t) { + true ? t(exports) : 0; + })(this, function (e) { + "use strict"; + const t = + "function" == typeof Symbol && "symbol" == typeof Symbol.iterator + ? Symbol + : (e) => `Symbol(${e})`; + function r() {} + function o(e) { + return ("object" == typeof e && null !== e) || "function" == typeof e; } - setPassiveListener(wrappedEvent, null); - setEventPhase(wrappedEvent, 0); - setCurrentTarget(wrappedEvent, null); - - return !wrappedEvent.defaultPrevented - }, -}; - -// `constructor` is not enumerable. -Object.defineProperty(EventTarget.prototype, "constructor", { - value: EventTarget, - configurable: true, - writable: true, -}); - -// Ensure `eventTarget instanceof window.EventTarget` is `true`. -if ( - typeof window !== "undefined" && - typeof window.EventTarget !== "undefined" -) { - Object.setPrototypeOf(EventTarget.prototype, window.EventTarget.prototype); -} - -exports.defineEventAttribute = defineEventAttribute; -exports.EventTarget = EventTarget; -exports["default"] = EventTarget; - -module.exports = EventTarget -module.exports.EventTarget = module.exports["default"] = EventTarget -module.exports.defineEventAttribute = defineEventAttribute -//# sourceMappingURL=event-target-shim.js.map - - -/***/ }), - -/***/ 6993: -/***/ (function(__unused_webpack_module, exports) { - -/** - * @license - * web-streams-polyfill v4.0.0-beta.3 - * Copyright 2021 Mattias Buelens, Diwank Singh Tomer and other contributors. - * This code is released under the MIT license. - * SPDX-License-Identifier: MIT - */ -!function(e,t){ true?t(exports):0}(this,(function(e){"use strict";const t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol:e=>`Symbol(${e})`;function r(){}function o(e){return"object"==typeof e&&null!==e||"function"==typeof e}const n=r;function a(e,t){try{Object.defineProperty(e,"name",{value:t,configurable:!0})}catch(e){}}const i=Promise,l=Promise.prototype.then,s=Promise.resolve.bind(i),u=Promise.reject.bind(i);function c(e){return new i(e)}function d(e){return s(e)}function f(e){return u(e)}function b(e,t,r){return l.call(e,t,r)}function h(e,t,r){b(b(e,t,r),void 0,n)}function _(e,t){h(e,t)}function p(e,t){h(e,void 0,t)}function m(e,t,r){return b(e,t,r)}function y(e){b(e,void 0,n)}let g=e=>{if("function"==typeof queueMicrotask)g=queueMicrotask;else{const e=d(void 0);g=t=>b(e,t)}return g(e)};function S(e,t,r){if("function"!=typeof e)throw new TypeError("Argument is not a function");return Function.prototype.apply.call(e,t,r)}function w(e,t,r){try{return d(S(e,t,r))}catch(e){return f(e)}}class v{constructor(){this._cursor=0,this._size=0,this._front={_elements:[],_next:void 0},this._back=this._front,this._cursor=0,this._size=0}get length(){return this._size}push(e){const t=this._back;let r=t;16383===t._elements.length&&(r={_elements:[],_next:void 0}),t._elements.push(e),r!==t&&(this._back=r,t._next=r),++this._size}shift(){const e=this._front;let t=e;const r=this._cursor;let o=r+1;const n=e._elements,a=n[r];return 16384===o&&(t=e._next,o=0),--this._size,this._cursor=o,e!==t&&(this._front=t),n[r]=void 0,a}forEach(e){let t=this._cursor,r=this._front,o=r._elements;for(;!(t===o.length&&void 0===r._next||t===o.length&&(r=r._next,o=r._elements,t=0,0===o.length));)e(o[t]),++t}peek(){const e=this._front,t=this._cursor;return e._elements[t]}}const R=t("[[AbortSteps]]"),T=t("[[ErrorSteps]]"),q=t("[[CancelSteps]]"),C=t("[[PullSteps]]"),P=t("[[ReleaseSteps]]");function E(e,t){e._ownerReadableStream=t,t._reader=e,"readable"===t._state?B(e):"closed"===t._state?function(e){B(e),z(e)}(e):A(e,t._storedError)}function W(e,t){return Xt(e._ownerReadableStream,t)}function O(e){const t=e._ownerReadableStream;"readable"===t._state?j(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")):function(e,t){A(e,t)}(e,new TypeError("Reader was released and can no longer be used to monitor the stream's closedness")),t._readableStreamController[P](),t._reader=void 0,e._ownerReadableStream=void 0}function k(e){return new TypeError("Cannot "+e+" a stream using a released reader")}function B(e){e._closedPromise=c(((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r}))}function A(e,t){B(e),j(e,t)}function j(e,t){void 0!==e._closedPromise_reject&&(y(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}function z(e){void 0!==e._closedPromise_resolve&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0)}const L=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)},F=Math.trunc||function(e){return e<0?Math.ceil(e):Math.floor(e)};function D(e,t){if(void 0!==e&&("object"!=typeof(r=e)&&"function"!=typeof r))throw new TypeError(`${t} is not an object.`);var r}function I(e,t){if("function"!=typeof e)throw new TypeError(`${t} is not a function.`)}function $(e,t){if(!function(e){return"object"==typeof e&&null!==e||"function"==typeof e}(e))throw new TypeError(`${t} is not an object.`)}function M(e,t,r){if(void 0===e)throw new TypeError(`Parameter ${t} is required in '${r}'.`)}function Y(e,t,r){if(void 0===e)throw new TypeError(`${t} is required in '${r}'.`)}function Q(e){return Number(e)}function N(e){return 0===e?0:e}function x(e,t){const r=Number.MAX_SAFE_INTEGER;let o=Number(e);if(o=N(o),!L(o))throw new TypeError(`${t} is not a finite number`);if(o=function(e){return N(F(e))}(o),o<0||o>r)throw new TypeError(`${t} is outside the accepted range of 0 to ${r}, inclusive`);return L(o)&&0!==o?o:0}function H(e){if(!o(e))return!1;if("function"!=typeof e.getReader)return!1;try{return"boolean"==typeof e.locked}catch(e){return!1}}function V(e){if(!o(e))return!1;if("function"!=typeof e.getWriter)return!1;try{return"boolean"==typeof e.locked}catch(e){return!1}}function U(e,t){if(!Ut(e))throw new TypeError(`${t} is not a ReadableStream.`)}function G(e,t){e._reader._readRequests.push(t)}function X(e,t,r){const o=e._reader._readRequests.shift();r?o._closeSteps():o._chunkSteps(t)}function J(e){return e._reader._readRequests.length}function K(e){const t=e._reader;return void 0!==t&&!!Z(t)}class ReadableStreamDefaultReader{constructor(e){if(M(e,1,"ReadableStreamDefaultReader"),U(e,"First parameter"),Gt(e))throw new TypeError("This stream has already been locked for exclusive reading by another reader");E(this,e),this._readRequests=new v}get closed(){return Z(this)?this._closedPromise:f(te("closed"))}cancel(e){return Z(this)?void 0===this._ownerReadableStream?f(k("cancel")):W(this,e):f(te("cancel"))}read(){if(!Z(this))return f(te("read"));if(void 0===this._ownerReadableStream)return f(k("read from"));let e,t;const r=c(((r,o)=>{e=r,t=o}));return function(e,t){const r=e._ownerReadableStream;r._disturbed=!0,"closed"===r._state?t._closeSteps():"errored"===r._state?t._errorSteps(r._storedError):r._readableStreamController[C](t)}(this,{_chunkSteps:t=>e({value:t,done:!1}),_closeSteps:()=>e({value:void 0,done:!0}),_errorSteps:e=>t(e)}),r}releaseLock(){if(!Z(this))throw te("releaseLock");void 0!==this._ownerReadableStream&&function(e){O(e);const t=new TypeError("Reader was released");ee(e,t)}(this)}}function Z(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_readRequests")&&e instanceof ReadableStreamDefaultReader)}function ee(e,t){const r=e._readRequests;e._readRequests=new v,r.forEach((e=>{e._errorSteps(t)}))}function te(e){return new TypeError(`ReadableStreamDefaultReader.prototype.${e} can only be used on a ReadableStreamDefaultReader`)}Object.defineProperties(ReadableStreamDefaultReader.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),a(ReadableStreamDefaultReader.prototype.cancel,"cancel"),a(ReadableStreamDefaultReader.prototype.read,"read"),a(ReadableStreamDefaultReader.prototype.releaseLock,"releaseLock"),"symbol"==typeof t.toStringTag&&Object.defineProperty(ReadableStreamDefaultReader.prototype,t.toStringTag,{value:"ReadableStreamDefaultReader",configurable:!0});class re{constructor(e,t){this._ongoingPromise=void 0,this._isFinished=!1,this._reader=e,this._preventCancel=t}next(){const e=()=>this._nextSteps();return this._ongoingPromise=this._ongoingPromise?m(this._ongoingPromise,e,e):e(),this._ongoingPromise}return(e){const t=()=>this._returnSteps(e);return this._ongoingPromise?m(this._ongoingPromise,t,t):t()}_nextSteps(){if(this._isFinished)return Promise.resolve({value:void 0,done:!0});const e=this._reader;return void 0===e?f(k("iterate")):b(e.read(),(e=>{var t;return this._ongoingPromise=void 0,e.done&&(this._isFinished=!0,null===(t=this._reader)||void 0===t||t.releaseLock(),this._reader=void 0),e}),(e=>{var t;throw this._ongoingPromise=void 0,this._isFinished=!0,null===(t=this._reader)||void 0===t||t.releaseLock(),this._reader=void 0,e}))}_returnSteps(e){if(this._isFinished)return Promise.resolve({value:e,done:!0});this._isFinished=!0;const t=this._reader;if(void 0===t)return f(k("finish iterating"));if(this._reader=void 0,!this._preventCancel){const r=t.cancel(e);return t.releaseLock(),m(r,(()=>({value:e,done:!0})))}return t.releaseLock(),d({value:e,done:!0})}}const oe={next(){return ne(this)?this._asyncIteratorImpl.next():f(ae("next"))},return(e){return ne(this)?this._asyncIteratorImpl.return(e):f(ae("return"))}};function ne(e){if(!o(e))return!1;if(!Object.prototype.hasOwnProperty.call(e,"_asyncIteratorImpl"))return!1;try{return e._asyncIteratorImpl instanceof re}catch(e){return!1}}function ae(e){return new TypeError(`ReadableStreamAsyncIterator.${e} can only be used on a ReadableSteamAsyncIterator`)}"symbol"==typeof t.asyncIterator&&Object.defineProperty(oe,t.asyncIterator,{value(){return this},writable:!0,configurable:!0});const ie=Number.isNaN||function(e){return e!=e};function le(e,t,r,o,n){new Uint8Array(e).set(new Uint8Array(r,o,n),t)}function se(e){const t=function(e,t,r){if(e.slice)return e.slice(t,r);const o=r-t,n=new ArrayBuffer(o);return le(n,0,e,t,o),n}(e.buffer,e.byteOffset,e.byteOffset+e.byteLength);return new Uint8Array(t)}function ue(e){const t=e._queue.shift();return e._queueTotalSize-=t.size,e._queueTotalSize<0&&(e._queueTotalSize=0),t.value}function ce(e,t,r){if("number"!=typeof(o=r)||ie(o)||o<0||r===1/0)throw new RangeError("Size must be a finite, non-NaN, non-negative number.");var o;e._queue.push({value:t,size:r}),e._queueTotalSize+=r}function de(e){e._queue=new v,e._queueTotalSize=0}class ReadableStreamBYOBRequest{constructor(){throw new TypeError("Illegal constructor")}get view(){if(!be(this))throw Ae("view");return this._view}respond(e){if(!be(this))throw Ae("respond");if(M(e,1,"respond"),e=x(e,"First parameter"),void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");this._view.buffer,function(e,t){const r=e._pendingPullIntos.peek();if("closed"===e._controlledReadableByteStream._state){if(0!==t)throw new TypeError("bytesWritten must be 0 when calling respond() on a closed stream")}else{if(0===t)throw new TypeError("bytesWritten must be greater than 0 when calling respond() on a readable stream");if(r.bytesFilled+t>r.byteLength)throw new RangeError("bytesWritten out of range")}r.buffer=r.buffer,Ce(e,t)}(this._associatedReadableByteStreamController,e)}respondWithNewView(e){if(!be(this))throw Ae("respondWithNewView");if(M(e,1,"respondWithNewView"),!ArrayBuffer.isView(e))throw new TypeError("You can only respond with array buffer views");if(void 0===this._associatedReadableByteStreamController)throw new TypeError("This BYOB request has been invalidated");e.buffer,function(e,t){const r=e._pendingPullIntos.peek();if("closed"===e._controlledReadableByteStream._state){if(0!==t.byteLength)throw new TypeError("The view's length must be 0 when calling respondWithNewView() on a closed stream")}else if(0===t.byteLength)throw new TypeError("The view's length must be greater than 0 when calling respondWithNewView() on a readable stream");if(r.byteOffset+r.bytesFilled!==t.byteOffset)throw new RangeError("The region specified by view does not match byobRequest");if(r.bufferByteLength!==t.buffer.byteLength)throw new RangeError("The buffer of view has different capacity than byobRequest");if(r.bytesFilled+t.byteLength>r.byteLength)throw new RangeError("The region specified by view is larger than byobRequest");const o=t.byteLength;r.buffer=t.buffer,Ce(e,o)}(this._associatedReadableByteStreamController,e)}}Object.defineProperties(ReadableStreamBYOBRequest.prototype,{respond:{enumerable:!0},respondWithNewView:{enumerable:!0},view:{enumerable:!0}}),a(ReadableStreamBYOBRequest.prototype.respond,"respond"),a(ReadableStreamBYOBRequest.prototype.respondWithNewView,"respondWithNewView"),"symbol"==typeof t.toStringTag&&Object.defineProperty(ReadableStreamBYOBRequest.prototype,t.toStringTag,{value:"ReadableStreamBYOBRequest",configurable:!0});class ReadableByteStreamController{constructor(){throw new TypeError("Illegal constructor")}get byobRequest(){if(!fe(this))throw je("byobRequest");return function(e){if(null===e._byobRequest&&e._pendingPullIntos.length>0){const t=e._pendingPullIntos.peek(),r=new Uint8Array(t.buffer,t.byteOffset+t.bytesFilled,t.byteLength-t.bytesFilled),o=Object.create(ReadableStreamBYOBRequest.prototype);!function(e,t,r){e._associatedReadableByteStreamController=t,e._view=r}(o,e,r),e._byobRequest=o}return e._byobRequest}(this)}get desiredSize(){if(!fe(this))throw je("desiredSize");return ke(this)}close(){if(!fe(this))throw je("close");if(this._closeRequested)throw new TypeError("The stream has already been closed; do not close it again!");const e=this._controlledReadableByteStream._state;if("readable"!==e)throw new TypeError(`The stream (in ${e} state) is not in the readable state and cannot be closed`);!function(e){const t=e._controlledReadableByteStream;if(e._closeRequested||"readable"!==t._state)return;if(e._queueTotalSize>0)return void(e._closeRequested=!0);if(e._pendingPullIntos.length>0){if(e._pendingPullIntos.peek().bytesFilled>0){const t=new TypeError("Insufficient bytes to fill elements in the given buffer");throw We(e,t),t}}Ee(e),Jt(t)}(this)}enqueue(e){if(!fe(this))throw je("enqueue");if(M(e,1,"enqueue"),!ArrayBuffer.isView(e))throw new TypeError("chunk must be an array buffer view");if(0===e.byteLength)throw new TypeError("chunk must have non-zero byteLength");if(0===e.buffer.byteLength)throw new TypeError("chunk's buffer must have non-zero byteLength");if(this._closeRequested)throw new TypeError("stream is closed or draining");const t=this._controlledReadableByteStream._state;if("readable"!==t)throw new TypeError(`The stream (in ${t} state) is not in the readable state and cannot be enqueued to`);!function(e,t){const r=e._controlledReadableByteStream;if(e._closeRequested||"readable"!==r._state)return;const o=t.buffer,n=t.byteOffset,a=t.byteLength,i=o;if(e._pendingPullIntos.length>0){const t=e._pendingPullIntos.peek();t.buffer,0,Te(e),t.buffer=t.buffer,"none"===t.readerType&&Se(e,t)}if(K(r))if(function(e){const t=e._controlledReadableByteStream._reader;for(;t._readRequests.length>0;){if(0===e._queueTotalSize)return;Oe(e,t._readRequests.shift())}}(e),0===J(r))ye(e,i,n,a);else{e._pendingPullIntos.length>0&&Pe(e);X(r,new Uint8Array(i,n,a),!1)}else Fe(r)?(ye(e,i,n,a),qe(e)):ye(e,i,n,a);he(e)}(this,e)}error(e){if(!fe(this))throw je("error");We(this,e)}[q](e){_e(this),de(this);const t=this._cancelAlgorithm(e);return Ee(this),t}[C](e){const t=this._controlledReadableByteStream;if(this._queueTotalSize>0)return void Oe(this,e);const r=this._autoAllocateChunkSize;if(void 0!==r){let t;try{t=new ArrayBuffer(r)}catch(t){return void e._errorSteps(t)}const o={buffer:t,bufferByteLength:r,byteOffset:0,byteLength:r,bytesFilled:0,elementSize:1,viewConstructor:Uint8Array,readerType:"default"};this._pendingPullIntos.push(o)}G(t,e),he(this)}[P](){if(this._pendingPullIntos.length>0){const e=this._pendingPullIntos.peek();e.readerType="none",this._pendingPullIntos=new v,this._pendingPullIntos.push(e)}}}function fe(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableByteStream")&&e instanceof ReadableByteStreamController)}function be(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_associatedReadableByteStreamController")&&e instanceof ReadableStreamBYOBRequest)}function he(e){const t=function(e){const t=e._controlledReadableByteStream;if("readable"!==t._state)return!1;if(e._closeRequested)return!1;if(!e._started)return!1;if(K(t)&&J(t)>0)return!0;if(Fe(t)&&Le(t)>0)return!0;if(ke(e)>0)return!0;return!1}(e);if(!t)return;if(e._pulling)return void(e._pullAgain=!0);e._pulling=!0;h(e._pullAlgorithm(),(()=>(e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,he(e)),null)),(t=>(We(e,t),null)))}function _e(e){Te(e),e._pendingPullIntos=new v}function pe(e,t){let r=!1;"closed"===e._state&&(r=!0);const o=me(t);"default"===t.readerType?X(e,o,r):function(e,t,r){const o=e._reader._readIntoRequests.shift();r?o._closeSteps(t):o._chunkSteps(t)}(e,o,r)}function me(e){const t=e.bytesFilled,r=e.elementSize;return new e.viewConstructor(e.buffer,e.byteOffset,t/r)}function ye(e,t,r,o){e._queue.push({buffer:t,byteOffset:r,byteLength:o}),e._queueTotalSize+=o}function ge(e,t,r,o){let n;try{n=t.slice(r,r+o)}catch(t){throw We(e,t),t}ye(e,n,0,o)}function Se(e,t){t.bytesFilled>0&&ge(e,t.buffer,t.byteOffset,t.bytesFilled),Pe(e)}function we(e,t){const r=t.elementSize,o=t.bytesFilled-t.bytesFilled%r,n=Math.min(e._queueTotalSize,t.byteLength-t.bytesFilled),a=t.bytesFilled+n,i=a-a%r;let l=n,s=!1;i>o&&(l=i-t.bytesFilled,s=!0);const u=e._queue;for(;l>0;){const r=u.peek(),o=Math.min(l,r.byteLength),n=t.byteOffset+t.bytesFilled;le(t.buffer,n,r.buffer,r.byteOffset,o),r.byteLength===o?u.shift():(r.byteOffset+=o,r.byteLength-=o),e._queueTotalSize-=o,ve(e,o,t),l-=o}return s}function ve(e,t,r){r.bytesFilled+=t}function Re(e){0===e._queueTotalSize&&e._closeRequested?(Ee(e),Jt(e._controlledReadableByteStream)):he(e)}function Te(e){null!==e._byobRequest&&(e._byobRequest._associatedReadableByteStreamController=void 0,e._byobRequest._view=null,e._byobRequest=null)}function qe(e){for(;e._pendingPullIntos.length>0;){if(0===e._queueTotalSize)return;const t=e._pendingPullIntos.peek();we(e,t)&&(Pe(e),pe(e._controlledReadableByteStream,t))}}function Ce(e,t){const r=e._pendingPullIntos.peek();Te(e);"closed"===e._controlledReadableByteStream._state?function(e,t){"none"===t.readerType&&Pe(e);const r=e._controlledReadableByteStream;if(Fe(r))for(;Le(r)>0;)pe(r,Pe(e))}(e,r):function(e,t,r){if(ve(0,t,r),"none"===r.readerType)return Se(e,r),void qe(e);if(r.bytesFilled0){const t=r.byteOffset+r.bytesFilled;ge(e,r.buffer,t-o,o)}r.bytesFilled-=o,pe(e._controlledReadableByteStream,r),qe(e)}(e,t,r),he(e)}function Pe(e){return e._pendingPullIntos.shift()}function Ee(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0}function We(e,t){const r=e._controlledReadableByteStream;"readable"===r._state&&(_e(e),de(e),Ee(e),Kt(r,t))}function Oe(e,t){const r=e._queue.shift();e._queueTotalSize-=r.byteLength,Re(e);const o=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);t._chunkSteps(o)}function ke(e){const t=e._controlledReadableByteStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function Be(e,t,r){const o=Object.create(ReadableByteStreamController.prototype);let n,a,i;n=void 0!==t.start?()=>t.start(o):()=>{},a=void 0!==t.pull?()=>t.pull(o):()=>d(void 0),i=void 0!==t.cancel?e=>t.cancel(e):()=>d(void 0);const l=t.autoAllocateChunkSize;if(0===l)throw new TypeError("autoAllocateChunkSize must be greater than 0");!function(e,t,r,o,n,a,i){t._controlledReadableByteStream=e,t._pullAgain=!1,t._pulling=!1,t._byobRequest=null,t._queue=t._queueTotalSize=void 0,de(t),t._closeRequested=!1,t._started=!1,t._strategyHWM=a,t._pullAlgorithm=o,t._cancelAlgorithm=n,t._autoAllocateChunkSize=i,t._pendingPullIntos=new v,e._readableStreamController=t,h(d(r()),(()=>(t._started=!0,he(t),null)),(e=>(We(t,e),null)))}(e,o,n,a,i,r,l)}function Ae(e){return new TypeError(`ReadableStreamBYOBRequest.prototype.${e} can only be used on a ReadableStreamBYOBRequest`)}function je(e){return new TypeError(`ReadableByteStreamController.prototype.${e} can only be used on a ReadableByteStreamController`)}function ze(e,t){e._reader._readIntoRequests.push(t)}function Le(e){return e._reader._readIntoRequests.length}function Fe(e){const t=e._reader;return void 0!==t&&!!De(t)}Object.defineProperties(ReadableByteStreamController.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},byobRequest:{enumerable:!0},desiredSize:{enumerable:!0}}),a(ReadableByteStreamController.prototype.close,"close"),a(ReadableByteStreamController.prototype.enqueue,"enqueue"),a(ReadableByteStreamController.prototype.error,"error"),"symbol"==typeof t.toStringTag&&Object.defineProperty(ReadableByteStreamController.prototype,t.toStringTag,{value:"ReadableByteStreamController",configurable:!0});class ReadableStreamBYOBReader{constructor(e){if(M(e,1,"ReadableStreamBYOBReader"),U(e,"First parameter"),Gt(e))throw new TypeError("This stream has already been locked for exclusive reading by another reader");if(!fe(e._readableStreamController))throw new TypeError("Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source");E(this,e),this._readIntoRequests=new v}get closed(){return De(this)?this._closedPromise:f($e("closed"))}cancel(e){return De(this)?void 0===this._ownerReadableStream?f(k("cancel")):W(this,e):f($e("cancel"))}read(e){if(!De(this))return f($e("read"));if(!ArrayBuffer.isView(e))return f(new TypeError("view must be an array buffer view"));if(0===e.byteLength)return f(new TypeError("view must have non-zero byteLength"));if(0===e.buffer.byteLength)return f(new TypeError("view's buffer must have non-zero byteLength"));if(e.buffer,void 0===this._ownerReadableStream)return f(k("read from"));let t,r;const o=c(((e,o)=>{t=e,r=o}));return function(e,t,r){const o=e._ownerReadableStream;o._disturbed=!0,"errored"===o._state?r._errorSteps(o._storedError):function(e,t,r){const o=e._controlledReadableByteStream;let n=1;t.constructor!==DataView&&(n=t.constructor.BYTES_PER_ELEMENT);const a=t.constructor,i=t.buffer,l={buffer:i,bufferByteLength:i.byteLength,byteOffset:t.byteOffset,byteLength:t.byteLength,bytesFilled:0,elementSize:n,viewConstructor:a,readerType:"byob"};if(e._pendingPullIntos.length>0)return e._pendingPullIntos.push(l),void ze(o,r);if("closed"!==o._state){if(e._queueTotalSize>0){if(we(e,l)){const t=me(l);return Re(e),void r._chunkSteps(t)}if(e._closeRequested){const t=new TypeError("Insufficient bytes to fill elements in the given buffer");return We(e,t),void r._errorSteps(t)}}e._pendingPullIntos.push(l),ze(o,r),he(e)}else{const e=new a(l.buffer,l.byteOffset,0);r._closeSteps(e)}}(o._readableStreamController,t,r)}(this,e,{_chunkSteps:e=>t({value:e,done:!1}),_closeSteps:e=>t({value:e,done:!0}),_errorSteps:e=>r(e)}),o}releaseLock(){if(!De(this))throw $e("releaseLock");void 0!==this._ownerReadableStream&&function(e){O(e);const t=new TypeError("Reader was released");Ie(e,t)}(this)}}function De(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_readIntoRequests")&&e instanceof ReadableStreamBYOBReader)}function Ie(e,t){const r=e._readIntoRequests;e._readIntoRequests=new v,r.forEach((e=>{e._errorSteps(t)}))}function $e(e){return new TypeError(`ReadableStreamBYOBReader.prototype.${e} can only be used on a ReadableStreamBYOBReader`)}function Me(e,t){const{highWaterMark:r}=e;if(void 0===r)return t;if(ie(r)||r<0)throw new RangeError("Invalid highWaterMark");return r}function Ye(e){const{size:t}=e;return t||(()=>1)}function Qe(e,t){D(e,t);const r=null==e?void 0:e.highWaterMark,o=null==e?void 0:e.size;return{highWaterMark:void 0===r?void 0:Q(r),size:void 0===o?void 0:Ne(o,`${t} has member 'size' that`)}}function Ne(e,t){return I(e,t),t=>Q(e(t))}function xe(e,t,r){return I(e,r),r=>w(e,t,[r])}function He(e,t,r){return I(e,r),()=>w(e,t,[])}function Ve(e,t,r){return I(e,r),r=>S(e,t,[r])}function Ue(e,t,r){return I(e,r),(r,o)=>w(e,t,[r,o])}Object.defineProperties(ReadableStreamBYOBReader.prototype,{cancel:{enumerable:!0},read:{enumerable:!0},releaseLock:{enumerable:!0},closed:{enumerable:!0}}),a(ReadableStreamBYOBReader.prototype.cancel,"cancel"),a(ReadableStreamBYOBReader.prototype.read,"read"),a(ReadableStreamBYOBReader.prototype.releaseLock,"releaseLock"),"symbol"==typeof t.toStringTag&&Object.defineProperty(ReadableStreamBYOBReader.prototype,t.toStringTag,{value:"ReadableStreamBYOBReader",configurable:!0});const Ge="function"==typeof AbortController;class WritableStream{constructor(e={},t={}){void 0===e?e=null:$(e,"First parameter");const r=Qe(t,"Second parameter"),o=function(e,t){D(e,t);const r=null==e?void 0:e.abort,o=null==e?void 0:e.close,n=null==e?void 0:e.start,a=null==e?void 0:e.type,i=null==e?void 0:e.write;return{abort:void 0===r?void 0:xe(r,e,`${t} has member 'abort' that`),close:void 0===o?void 0:He(o,e,`${t} has member 'close' that`),start:void 0===n?void 0:Ve(n,e,`${t} has member 'start' that`),write:void 0===i?void 0:Ue(i,e,`${t} has member 'write' that`),type:a}}(e,"First parameter");var n;(n=this)._state="writable",n._storedError=void 0,n._writer=void 0,n._writableStreamController=void 0,n._writeRequests=new v,n._inFlightWriteRequest=void 0,n._closeRequest=void 0,n._inFlightCloseRequest=void 0,n._pendingAbortRequest=void 0,n._backpressure=!1;if(void 0!==o.type)throw new RangeError("Invalid type is specified");const a=Ye(r);!function(e,t,r,o){const n=Object.create(WritableStreamDefaultController.prototype);let a,i,l,s;a=void 0!==t.start?()=>t.start(n):()=>{};i=void 0!==t.write?e=>t.write(e,n):()=>d(void 0);l=void 0!==t.close?()=>t.close():()=>d(void 0);s=void 0!==t.abort?e=>t.abort(e):()=>d(void 0);!function(e,t,r,o,n,a,i,l){t._controlledWritableStream=e,e._writableStreamController=t,t._queue=void 0,t._queueTotalSize=void 0,de(t),t._abortReason=void 0,t._abortController=function(){if(Ge)return new AbortController}(),t._started=!1,t._strategySizeAlgorithm=l,t._strategyHWM=i,t._writeAlgorithm=o,t._closeAlgorithm=n,t._abortAlgorithm=a;const s=ht(t);at(e,s);const u=r();h(d(u),(()=>(t._started=!0,ft(t),null)),(r=>(t._started=!0,et(e,r),null)))}(e,n,a,i,l,s,r,o)}(this,o,Me(r,1),a)}get locked(){if(!Xe(this))throw pt("locked");return Je(this)}abort(e){return Xe(this)?Je(this)?f(new TypeError("Cannot abort a stream that already has a writer")):Ke(this,e):f(pt("abort"))}close(){return Xe(this)?Je(this)?f(new TypeError("Cannot close a stream that already has a writer")):ot(this)?f(new TypeError("Cannot close an already-closing stream")):Ze(this):f(pt("close"))}getWriter(){if(!Xe(this))throw pt("getWriter");return new WritableStreamDefaultWriter(this)}}function Xe(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_writableStreamController")&&e instanceof WritableStream)}function Je(e){return void 0!==e._writer}function Ke(e,t){var r;if("closed"===e._state||"errored"===e._state)return d(void 0);e._writableStreamController._abortReason=t,null===(r=e._writableStreamController._abortController)||void 0===r||r.abort(t);const o=e._state;if("closed"===o||"errored"===o)return d(void 0);if(void 0!==e._pendingAbortRequest)return e._pendingAbortRequest._promise;let n=!1;"erroring"===o&&(n=!0,t=void 0);const a=c(((r,o)=>{e._pendingAbortRequest={_promise:void 0,_resolve:r,_reject:o,_reason:t,_wasAlreadyErroring:n}}));return e._pendingAbortRequest._promise=a,n||tt(e,t),a}function Ze(e){const t=e._state;if("closed"===t||"errored"===t)return f(new TypeError(`The stream (in ${t} state) is not in the writable state and cannot be closed`));const r=c(((t,r)=>{const o={_resolve:t,_reject:r};e._closeRequest=o})),o=e._writer;var n;return void 0!==o&&e._backpressure&&"writable"===t&&Et(o),ce(n=e._writableStreamController,st,0),ft(n),r}function et(e,t){"writable"!==e._state?rt(e):tt(e,t)}function tt(e,t){const r=e._writableStreamController;e._state="erroring",e._storedError=t;const o=e._writer;void 0!==o&<(o,t),!function(e){if(void 0===e._inFlightWriteRequest&&void 0===e._inFlightCloseRequest)return!1;return!0}(e)&&r._started&&rt(e)}function rt(e){e._state="errored",e._writableStreamController[T]();const t=e._storedError;if(e._writeRequests.forEach((e=>{e._reject(t)})),e._writeRequests=new v,void 0===e._pendingAbortRequest)return void nt(e);const r=e._pendingAbortRequest;if(e._pendingAbortRequest=void 0,r._wasAlreadyErroring)return r._reject(t),void nt(e);h(e._writableStreamController[R](r._reason),(()=>(r._resolve(),nt(e),null)),(t=>(r._reject(t),nt(e),null)))}function ot(e){return void 0!==e._closeRequest||void 0!==e._inFlightCloseRequest}function nt(e){void 0!==e._closeRequest&&(e._closeRequest._reject(e._storedError),e._closeRequest=void 0);const t=e._writer;void 0!==t&&vt(t,e._storedError)}function at(e,t){const r=e._writer;void 0!==r&&t!==e._backpressure&&(t?function(e){Tt(e)}(r):Et(r)),e._backpressure=t}Object.defineProperties(WritableStream.prototype,{abort:{enumerable:!0},close:{enumerable:!0},getWriter:{enumerable:!0},locked:{enumerable:!0}}),a(WritableStream.prototype.abort,"abort"),a(WritableStream.prototype.close,"close"),a(WritableStream.prototype.getWriter,"getWriter"),"symbol"==typeof t.toStringTag&&Object.defineProperty(WritableStream.prototype,t.toStringTag,{value:"WritableStream",configurable:!0});class WritableStreamDefaultWriter{constructor(e){if(M(e,1,"WritableStreamDefaultWriter"),function(e,t){if(!Xe(e))throw new TypeError(`${t} is not a WritableStream.`)}(e,"First parameter"),Je(e))throw new TypeError("This stream has already been locked for exclusive writing by another writer");this._ownerWritableStream=e,e._writer=this;const t=e._state;if("writable"===t)!ot(e)&&e._backpressure?Tt(this):Ct(this),St(this);else if("erroring"===t)qt(this,e._storedError),St(this);else if("closed"===t)Ct(this),St(r=this),Rt(r);else{const t=e._storedError;qt(this,t),wt(this,t)}var r}get closed(){return it(this)?this._closedPromise:f(yt("closed"))}get desiredSize(){if(!it(this))throw yt("desiredSize");if(void 0===this._ownerWritableStream)throw gt("desiredSize");return function(e){const t=e._ownerWritableStream,r=t._state;if("errored"===r||"erroring"===r)return null;if("closed"===r)return 0;return dt(t._writableStreamController)}(this)}get ready(){return it(this)?this._readyPromise:f(yt("ready"))}abort(e){return it(this)?void 0===this._ownerWritableStream?f(gt("abort")):function(e,t){return Ke(e._ownerWritableStream,t)}(this,e):f(yt("abort"))}close(){if(!it(this))return f(yt("close"));const e=this._ownerWritableStream;return void 0===e?f(gt("close")):ot(e)?f(new TypeError("Cannot close an already-closing stream")):Ze(this._ownerWritableStream)}releaseLock(){if(!it(this))throw yt("releaseLock");void 0!==this._ownerWritableStream&&function(e){const t=e._ownerWritableStream,r=new TypeError("Writer was released and can no longer be used to monitor the stream's closedness");lt(e,r),function(e,t){"pending"===e._closedPromiseState?vt(e,t):function(e,t){wt(e,t)}(e,t)}(e,r),t._writer=void 0,e._ownerWritableStream=void 0}(this)}write(e){return it(this)?void 0===this._ownerWritableStream?f(gt("write to")):function(e,t){const r=e._ownerWritableStream,o=r._writableStreamController,n=function(e,t){try{return e._strategySizeAlgorithm(t)}catch(t){return bt(e,t),1}}(o,t);if(r!==e._ownerWritableStream)return f(gt("write to"));const a=r._state;if("errored"===a)return f(r._storedError);if(ot(r)||"closed"===a)return f(new TypeError("The stream is closing or closed and cannot be written to"));if("erroring"===a)return f(r._storedError);const i=function(e){return c(((t,r)=>{const o={_resolve:t,_reject:r};e._writeRequests.push(o)}))}(r);return function(e,t,r){try{ce(e,t,r)}catch(t){return void bt(e,t)}const o=e._controlledWritableStream;if(!ot(o)&&"writable"===o._state){at(o,ht(e))}ft(e)}(o,t,n),i}(this,e):f(yt("write"))}}function it(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_ownerWritableStream")&&e instanceof WritableStreamDefaultWriter)}function lt(e,t){"pending"===e._readyPromiseState?Pt(e,t):function(e,t){qt(e,t)}(e,t)}Object.defineProperties(WritableStreamDefaultWriter.prototype,{abort:{enumerable:!0},close:{enumerable:!0},releaseLock:{enumerable:!0},write:{enumerable:!0},closed:{enumerable:!0},desiredSize:{enumerable:!0},ready:{enumerable:!0}}),a(WritableStreamDefaultWriter.prototype.abort,"abort"),a(WritableStreamDefaultWriter.prototype.close,"close"),a(WritableStreamDefaultWriter.prototype.releaseLock,"releaseLock"),a(WritableStreamDefaultWriter.prototype.write,"write"),"symbol"==typeof t.toStringTag&&Object.defineProperty(WritableStreamDefaultWriter.prototype,t.toStringTag,{value:"WritableStreamDefaultWriter",configurable:!0});const st={};class WritableStreamDefaultController{constructor(){throw new TypeError("Illegal constructor")}get abortReason(){if(!ut(this))throw mt("abortReason");return this._abortReason}get signal(){if(!ut(this))throw mt("signal");if(void 0===this._abortController)throw new TypeError("WritableStreamDefaultController.prototype.signal is not supported");return this._abortController.signal}error(e){if(!ut(this))throw mt("error");"writable"===this._controlledWritableStream._state&&_t(this,e)}[R](e){const t=this._abortAlgorithm(e);return ct(this),t}[T](){de(this)}}function ut(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_controlledWritableStream")&&e instanceof WritableStreamDefaultController)}function ct(e){e._writeAlgorithm=void 0,e._closeAlgorithm=void 0,e._abortAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function dt(e){return e._strategyHWM-e._queueTotalSize}function ft(e){const t=e._controlledWritableStream;if(!e._started)return;if(void 0!==t._inFlightWriteRequest)return;if("erroring"===t._state)return void rt(t);if(0===e._queue.length)return;const r=e._queue.peek().value;r===st?function(e){const t=e._controlledWritableStream;(function(e){e._inFlightCloseRequest=e._closeRequest,e._closeRequest=void 0})(t),ue(e);const r=e._closeAlgorithm();ct(e),h(r,(()=>(function(e){e._inFlightCloseRequest._resolve(void 0),e._inFlightCloseRequest=void 0,"erroring"===e._state&&(e._storedError=void 0,void 0!==e._pendingAbortRequest&&(e._pendingAbortRequest._resolve(),e._pendingAbortRequest=void 0)),e._state="closed";const t=e._writer;void 0!==t&&Rt(t)}(t),null)),(e=>(function(e,t){e._inFlightCloseRequest._reject(t),e._inFlightCloseRequest=void 0,void 0!==e._pendingAbortRequest&&(e._pendingAbortRequest._reject(t),e._pendingAbortRequest=void 0),et(e,t)}(t,e),null)))}(e):function(e,t){const r=e._controlledWritableStream;!function(e){e._inFlightWriteRequest=e._writeRequests.shift()}(r);h(e._writeAlgorithm(t),(()=>{!function(e){e._inFlightWriteRequest._resolve(void 0),e._inFlightWriteRequest=void 0}(r);const t=r._state;if(ue(e),!ot(r)&&"writable"===t){const t=ht(e);at(r,t)}return ft(e),null}),(t=>("writable"===r._state&&ct(e),function(e,t){e._inFlightWriteRequest._reject(t),e._inFlightWriteRequest=void 0,et(e,t)}(r,t),null)))}(e,r)}function bt(e,t){"writable"===e._controlledWritableStream._state&&_t(e,t)}function ht(e){return dt(e)<=0}function _t(e,t){const r=e._controlledWritableStream;ct(e),tt(r,t)}function pt(e){return new TypeError(`WritableStream.prototype.${e} can only be used on a WritableStream`)}function mt(e){return new TypeError(`WritableStreamDefaultController.prototype.${e} can only be used on a WritableStreamDefaultController`)}function yt(e){return new TypeError(`WritableStreamDefaultWriter.prototype.${e} can only be used on a WritableStreamDefaultWriter`)}function gt(e){return new TypeError("Cannot "+e+" a stream using a released writer")}function St(e){e._closedPromise=c(((t,r)=>{e._closedPromise_resolve=t,e._closedPromise_reject=r,e._closedPromiseState="pending"}))}function wt(e,t){St(e),vt(e,t)}function vt(e,t){void 0!==e._closedPromise_reject&&(y(e._closedPromise),e._closedPromise_reject(t),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="rejected")}function Rt(e){void 0!==e._closedPromise_resolve&&(e._closedPromise_resolve(void 0),e._closedPromise_resolve=void 0,e._closedPromise_reject=void 0,e._closedPromiseState="resolved")}function Tt(e){e._readyPromise=c(((t,r)=>{e._readyPromise_resolve=t,e._readyPromise_reject=r})),e._readyPromiseState="pending"}function qt(e,t){Tt(e),Pt(e,t)}function Ct(e){Tt(e),Et(e)}function Pt(e,t){void 0!==e._readyPromise_reject&&(y(e._readyPromise),e._readyPromise_reject(t),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="rejected")}function Et(e){void 0!==e._readyPromise_resolve&&(e._readyPromise_resolve(void 0),e._readyPromise_resolve=void 0,e._readyPromise_reject=void 0,e._readyPromiseState="fulfilled")}Object.defineProperties(WritableStreamDefaultController.prototype,{abortReason:{enumerable:!0},signal:{enumerable:!0},error:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(WritableStreamDefaultController.prototype,t.toStringTag,{value:"WritableStreamDefaultController",configurable:!0});const Wt="undefined"!=typeof DOMException?DOMException:void 0;const Ot=function(e){if("function"!=typeof e&&"object"!=typeof e)return!1;try{return new e,!0}catch(e){return!1}}(Wt)?Wt:function(){const e=function(e,t){this.message=e||"",this.name=t||"Error",Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)};return e.prototype=Object.create(Error.prototype),Object.defineProperty(e.prototype,"constructor",{value:e,writable:!0,configurable:!0}),e}();function kt(e,t,r,o,n,a){const i=e.getReader(),l=t.getWriter();Ut(e)&&(e._disturbed=!0);let s,u,p,S=!1,w=!1,v="readable",R="writable",T=!1,q=!1;const C=c((e=>{p=e}));let P=Promise.resolve(void 0);return c(((E,W)=>{let O;function k(){if(S)return;const e=c(((e,t)=>{!function r(o){o?e():b(function(){if(S)return d(!0);return b(l.ready,(()=>b(i.read(),(e=>!!e.done||(P=l.write(e.value),y(P),!1)))))}(),r,t)}(!1)}));y(e)}function B(){return v="closed",r?L():z((()=>(Xe(t)&&(T=ot(t),R=t._state),T||"closed"===R?d(void 0):"erroring"===R||"errored"===R?f(u):(T=!0,l.close()))),!1,void 0),null}function A(e){return S||(v="errored",s=e,o?L(!0,e):z((()=>l.abort(e)),!0,e)),null}function j(e){return w||(R="errored",u=e,n?L(!0,e):z((()=>i.cancel(e)),!0,e)),null}if(void 0!==a&&(O=()=>{const e=void 0!==a.reason?a.reason:new Ot("Aborted","AbortError"),t=[];o||t.push((()=>"writable"===R?l.abort(e):d(void 0))),n||t.push((()=>"readable"===v?i.cancel(e):d(void 0))),z((()=>Promise.all(t.map((e=>e())))),!0,e)},a.aborted?O():a.addEventListener("abort",O)),Ut(e)&&(v=e._state,s=e._storedError),Xe(t)&&(R=t._state,u=t._storedError,T=ot(t)),Ut(e)&&Xe(t)&&(q=!0,p()),"errored"===v)A(s);else if("erroring"===R||"errored"===R)j(u);else if("closed"===v)B();else if(T||"closed"===R){const e=new TypeError("the destination writable stream closed before all data could be piped to it");n?L(!0,e):z((()=>i.cancel(e)),!0,e)}function z(e,t,r){function o(){return"writable"!==R||T?n():_(function(){let e;return d(function t(){if(e!==P)return e=P,m(P,t,t)}())}(),n),null}function n(){return e?h(e(),(()=>F(t,r)),(e=>F(!0,e))):F(t,r),null}S||(S=!0,q?o():_(C,o))}function L(e,t){z(void 0,e,t)}function F(e,t){return w=!0,l.releaseLock(),i.releaseLock(),void 0!==a&&a.removeEventListener("abort",O),e?W(t):E(void 0),null}S||(h(i.closed,B,A),h(l.closed,(function(){return w||(R="closed"),null}),j)),q?k():g((()=>{q=!0,p(),k()}))}))}function Bt(e,t){return function(e){try{return e.getReader({mode:"byob"}).releaseLock(),!0}catch(e){return!1}}(e)?function(e){let t,r,o,n,a,i=e.getReader(),l=!1,s=!1,u=!1,f=!1,b=!1,_=!1;const m=c((e=>{a=e}));function y(e){p(e.closed,(t=>(e!==i||(o.error(t),n.error(t),b&&_||a(void 0)),null)))}function g(){l&&(i.releaseLock(),i=e.getReader(),y(i),l=!1),h(i.read(),(e=>{var t,r;if(u=!1,f=!1,e.done)return b||o.close(),_||n.close(),null===(t=o.byobRequest)||void 0===t||t.respond(0),null===(r=n.byobRequest)||void 0===r||r.respond(0),b&&_||a(void 0),null;const l=e.value,c=l;let d=l;if(!b&&!_)try{d=se(l)}catch(e){return o.error(e),n.error(e),a(i.cancel(e)),null}return b||o.enqueue(c),_||n.enqueue(d),s=!1,u?w():f&&v(),null}),(()=>(s=!1,null)))}function S(t,r){l||(i.releaseLock(),i=e.getReader({mode:"byob"}),y(i),l=!0);const c=r?n:o,d=r?o:n;h(i.read(t),(e=>{var t;u=!1,f=!1;const o=r?_:b,n=r?b:_;if(e.done){o||c.close(),n||d.close();const r=e.value;return void 0!==r&&(o||c.byobRequest.respondWithNewView(r),n||null===(t=d.byobRequest)||void 0===t||t.respond(0)),o&&n||a(void 0),null}const l=e.value;if(n)o||c.byobRequest.respondWithNewView(l);else{let e;try{e=se(l)}catch(e){return c.error(e),d.error(e),a(i.cancel(e)),null}o||c.byobRequest.respondWithNewView(l),d.enqueue(e)}return s=!1,u?w():f&&v(),null}),(()=>(s=!1,null)))}function w(){if(s)return u=!0,d(void 0);s=!0;const e=o.byobRequest;return null===e?g():S(e.view,!1),d(void 0)}function v(){if(s)return f=!0,d(void 0);s=!0;const e=n.byobRequest;return null===e?g():S(e.view,!0),d(void 0)}function R(e){if(b=!0,t=e,_){const e=[t,r],o=i.cancel(e);a(o)}return m}function T(e){if(_=!0,r=e,b){const e=[t,r],o=i.cancel(e);a(o)}return m}const q=new ReadableStream({type:"bytes",start(e){o=e},pull:w,cancel:R}),C=new ReadableStream({type:"bytes",start(e){n=e},pull:v,cancel:T});return y(i),[q,C]}(e):function(e,t){const r=e.getReader();let o,n,a,i,l,s=!1,u=!1,f=!1,b=!1;const _=c((e=>{l=e}));function m(){return s?(u=!0,d(void 0)):(s=!0,h(r.read(),(e=>{if(u=!1,e.done)return f||a.close(),b||i.close(),f&&b||l(void 0),null;const t=e.value,r=t,o=t;return f||a.enqueue(r),b||i.enqueue(o),s=!1,u&&m(),null}),(()=>(s=!1,null))),d(void 0))}function y(e){if(f=!0,o=e,b){const e=[o,n],t=r.cancel(e);l(t)}return _}function g(e){if(b=!0,n=e,f){const e=[o,n],t=r.cancel(e);l(t)}return _}const S=new ReadableStream({start(e){a=e},pull:m,cancel:y}),w=new ReadableStream({start(e){i=e},pull:m,cancel:g});return p(r.closed,(e=>(a.error(e),i.error(e),f&&b||l(void 0),null))),[S,w]}(e)}class ReadableStreamDefaultController{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!At(this))throw $t("desiredSize");return Ft(this)}close(){if(!At(this))throw $t("close");if(!Dt(this))throw new TypeError("The stream is not in a state that permits close");!function(e){if(!Dt(e))return;const t=e._controlledReadableStream;e._closeRequested=!0,0===e._queue.length&&(zt(e),Jt(t))}(this)}enqueue(e){if(!At(this))throw $t("enqueue");if(!Dt(this))throw new TypeError("The stream is not in a state that permits enqueue");return function(e,t){if(!Dt(e))return;const r=e._controlledReadableStream;if(Gt(r)&&J(r)>0)X(r,t,!1);else{let r;try{r=e._strategySizeAlgorithm(t)}catch(t){throw Lt(e,t),t}try{ce(e,t,r)}catch(t){throw Lt(e,t),t}}jt(e)}(this,e)}error(e){if(!At(this))throw $t("error");Lt(this,e)}[q](e){de(this);const t=this._cancelAlgorithm(e);return zt(this),t}[C](e){const t=this._controlledReadableStream;if(this._queue.length>0){const r=ue(this);this._closeRequested&&0===this._queue.length?(zt(this),Jt(t)):jt(this),e._chunkSteps(r)}else G(t,e),jt(this)}[P](){}}function At(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_controlledReadableStream")&&e instanceof ReadableStreamDefaultController)}function jt(e){const t=function(e){const t=e._controlledReadableStream;if(!Dt(e))return!1;if(!e._started)return!1;if(Gt(t)&&J(t)>0)return!0;if(Ft(e)>0)return!0;return!1}(e);if(!t)return;if(e._pulling)return void(e._pullAgain=!0);e._pulling=!0;h(e._pullAlgorithm(),(()=>(e._pulling=!1,e._pullAgain&&(e._pullAgain=!1,jt(e)),null)),(t=>(Lt(e,t),null)))}function zt(e){e._pullAlgorithm=void 0,e._cancelAlgorithm=void 0,e._strategySizeAlgorithm=void 0}function Lt(e,t){const r=e._controlledReadableStream;"readable"===r._state&&(de(e),zt(e),Kt(r,t))}function Ft(e){const t=e._controlledReadableStream._state;return"errored"===t?null:"closed"===t?0:e._strategyHWM-e._queueTotalSize}function Dt(e){return!e._closeRequested&&"readable"===e._controlledReadableStream._state}function It(e,t,r,o){const n=Object.create(ReadableStreamDefaultController.prototype);let a,i,l;a=void 0!==t.start?()=>t.start(n):()=>{},i=void 0!==t.pull?()=>t.pull(n):()=>d(void 0),l=void 0!==t.cancel?e=>t.cancel(e):()=>d(void 0),function(e,t,r,o,n,a,i){t._controlledReadableStream=e,t._queue=void 0,t._queueTotalSize=void 0,de(t),t._started=!1,t._closeRequested=!1,t._pullAgain=!1,t._pulling=!1,t._strategySizeAlgorithm=i,t._strategyHWM=a,t._pullAlgorithm=o,t._cancelAlgorithm=n,e._readableStreamController=t,h(d(r()),(()=>(t._started=!0,jt(t),null)),(e=>(Lt(t,e),null)))}(e,n,a,i,l,r,o)}function $t(e){return new TypeError(`ReadableStreamDefaultController.prototype.${e} can only be used on a ReadableStreamDefaultController`)}function Mt(e,t,r){return I(e,r),r=>w(e,t,[r])}function Yt(e,t,r){return I(e,r),r=>w(e,t,[r])}function Qt(e,t,r){return I(e,r),r=>S(e,t,[r])}function Nt(e,t){if("bytes"!==(e=`${e}`))throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamType`);return e}function xt(e,t){if("byob"!==(e=`${e}`))throw new TypeError(`${t} '${e}' is not a valid enumeration value for ReadableStreamReaderMode`);return e}function Ht(e,t){D(e,t);const r=null==e?void 0:e.preventAbort,o=null==e?void 0:e.preventCancel,n=null==e?void 0:e.preventClose,a=null==e?void 0:e.signal;return void 0!==a&&function(e,t){if(!function(e){if("object"!=typeof e||null===e)return!1;try{return"boolean"==typeof e.aborted}catch(e){return!1}}(e))throw new TypeError(`${t} is not an AbortSignal.`)}(a,`${t} has member 'signal' that`),{preventAbort:Boolean(r),preventCancel:Boolean(o),preventClose:Boolean(n),signal:a}}function Vt(e,t){D(e,t);const r=null==e?void 0:e.readable;Y(r,"readable","ReadableWritablePair"),function(e,t){if(!H(e))throw new TypeError(`${t} is not a ReadableStream.`)}(r,`${t} has member 'readable' that`);const o=null==e?void 0:e.writable;return Y(o,"writable","ReadableWritablePair"),function(e,t){if(!V(e))throw new TypeError(`${t} is not a WritableStream.`)}(o,`${t} has member 'writable' that`),{readable:r,writable:o}}Object.defineProperties(ReadableStreamDefaultController.prototype,{close:{enumerable:!0},enqueue:{enumerable:!0},error:{enumerable:!0},desiredSize:{enumerable:!0}}),a(ReadableStreamDefaultController.prototype.close,"close"),a(ReadableStreamDefaultController.prototype.enqueue,"enqueue"),a(ReadableStreamDefaultController.prototype.error,"error"),"symbol"==typeof t.toStringTag&&Object.defineProperty(ReadableStreamDefaultController.prototype,t.toStringTag,{value:"ReadableStreamDefaultController",configurable:!0});class ReadableStream{constructor(e={},t={}){void 0===e?e=null:$(e,"First parameter");const r=Qe(t,"Second parameter"),o=function(e,t){D(e,t);const r=e,o=null==r?void 0:r.autoAllocateChunkSize,n=null==r?void 0:r.cancel,a=null==r?void 0:r.pull,i=null==r?void 0:r.start,l=null==r?void 0:r.type;return{autoAllocateChunkSize:void 0===o?void 0:x(o,`${t} has member 'autoAllocateChunkSize' that`),cancel:void 0===n?void 0:Mt(n,r,`${t} has member 'cancel' that`),pull:void 0===a?void 0:Yt(a,r,`${t} has member 'pull' that`),start:void 0===i?void 0:Qt(i,r,`${t} has member 'start' that`),type:void 0===l?void 0:Nt(l,`${t} has member 'type' that`)}}(e,"First parameter");var n;if((n=this)._state="readable",n._reader=void 0,n._storedError=void 0,n._disturbed=!1,"bytes"===o.type){if(void 0!==r.size)throw new RangeError("The strategy for a byte stream cannot have a size function");Be(this,o,Me(r,0))}else{const e=Ye(r);It(this,o,Me(r,1),e)}}get locked(){if(!Ut(this))throw Zt("locked");return Gt(this)}cancel(e){return Ut(this)?Gt(this)?f(new TypeError("Cannot cancel a stream that already has a reader")):Xt(this,e):f(Zt("cancel"))}getReader(e){if(!Ut(this))throw Zt("getReader");return void 0===function(e,t){D(e,t);const r=null==e?void 0:e.mode;return{mode:void 0===r?void 0:xt(r,`${t} has member 'mode' that`)}}(e,"First parameter").mode?new ReadableStreamDefaultReader(this):function(e){return new ReadableStreamBYOBReader(e)}(this)}pipeThrough(e,t={}){if(!H(this))throw Zt("pipeThrough");M(e,1,"pipeThrough");const r=Vt(e,"First parameter"),o=Ht(t,"Second parameter");if(this.locked)throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream");if(r.writable.locked)throw new TypeError("ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream");return y(kt(this,r.writable,o.preventClose,o.preventAbort,o.preventCancel,o.signal)),r.readable}pipeTo(e,t={}){if(!H(this))return f(Zt("pipeTo"));if(void 0===e)return f("Parameter 1 is required in 'pipeTo'.");if(!V(e))return f(new TypeError("ReadableStream.prototype.pipeTo's first argument must be a WritableStream"));let r;try{r=Ht(t,"Second parameter")}catch(e){return f(e)}return this.locked?f(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream")):e.locked?f(new TypeError("ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream")):kt(this,e,r.preventClose,r.preventAbort,r.preventCancel,r.signal)}tee(){if(!H(this))throw Zt("tee");if(this.locked)throw new TypeError("Cannot tee a stream that already has a reader");return Bt(this)}values(e){if(!H(this))throw Zt("values");return function(e,t){const r=e.getReader(),o=new re(r,t),n=Object.create(oe);return n._asyncIteratorImpl=o,n}(this,function(e,t){D(e,t);const r=null==e?void 0:e.preventCancel;return{preventCancel:Boolean(r)}}(e,"First parameter").preventCancel)}}function Ut(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_readableStreamController")&&e instanceof ReadableStream)}function Gt(e){return void 0!==e._reader}function Xt(e,t){if(e._disturbed=!0,"closed"===e._state)return d(void 0);if("errored"===e._state)return f(e._storedError);Jt(e);const o=e._reader;if(void 0!==o&&De(o)){const e=o._readIntoRequests;o._readIntoRequests=new v,e.forEach((e=>{e._closeSteps(void 0)}))}return m(e._readableStreamController[q](t),r)}function Jt(e){e._state="closed";const t=e._reader;if(void 0!==t&&(z(t),Z(t))){const e=t._readRequests;t._readRequests=new v,e.forEach((e=>{e._closeSteps()}))}}function Kt(e,t){e._state="errored",e._storedError=t;const r=e._reader;void 0!==r&&(j(r,t),Z(r)?ee(r,t):Ie(r,t))}function Zt(e){return new TypeError(`ReadableStream.prototype.${e} can only be used on a ReadableStream`)}function er(e,t){D(e,t);const r=null==e?void 0:e.highWaterMark;return Y(r,"highWaterMark","QueuingStrategyInit"),{highWaterMark:Q(r)}}Object.defineProperties(ReadableStream.prototype,{cancel:{enumerable:!0},getReader:{enumerable:!0},pipeThrough:{enumerable:!0},pipeTo:{enumerable:!0},tee:{enumerable:!0},values:{enumerable:!0},locked:{enumerable:!0}}),a(ReadableStream.prototype.cancel,"cancel"),a(ReadableStream.prototype.getReader,"getReader"),a(ReadableStream.prototype.pipeThrough,"pipeThrough"),a(ReadableStream.prototype.pipeTo,"pipeTo"),a(ReadableStream.prototype.tee,"tee"),a(ReadableStream.prototype.values,"values"),"symbol"==typeof t.toStringTag&&Object.defineProperty(ReadableStream.prototype,t.toStringTag,{value:"ReadableStream",configurable:!0}),"symbol"==typeof t.asyncIterator&&Object.defineProperty(ReadableStream.prototype,t.asyncIterator,{value:ReadableStream.prototype.values,writable:!0,configurable:!0});const tr=e=>e.byteLength;a(tr,"size");class ByteLengthQueuingStrategy{constructor(e){M(e,1,"ByteLengthQueuingStrategy"),e=er(e,"First parameter"),this._byteLengthQueuingStrategyHighWaterMark=e.highWaterMark}get highWaterMark(){if(!or(this))throw rr("highWaterMark");return this._byteLengthQueuingStrategyHighWaterMark}get size(){if(!or(this))throw rr("size");return tr}}function rr(e){return new TypeError(`ByteLengthQueuingStrategy.prototype.${e} can only be used on a ByteLengthQueuingStrategy`)}function or(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_byteLengthQueuingStrategyHighWaterMark")&&e instanceof ByteLengthQueuingStrategy)}Object.defineProperties(ByteLengthQueuingStrategy.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(ByteLengthQueuingStrategy.prototype,t.toStringTag,{value:"ByteLengthQueuingStrategy",configurable:!0});const nr=()=>1;a(nr,"size");class CountQueuingStrategy{constructor(e){M(e,1,"CountQueuingStrategy"),e=er(e,"First parameter"),this._countQueuingStrategyHighWaterMark=e.highWaterMark}get highWaterMark(){if(!ir(this))throw ar("highWaterMark");return this._countQueuingStrategyHighWaterMark}get size(){if(!ir(this))throw ar("size");return nr}}function ar(e){return new TypeError(`CountQueuingStrategy.prototype.${e} can only be used on a CountQueuingStrategy`)}function ir(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_countQueuingStrategyHighWaterMark")&&e instanceof CountQueuingStrategy)}function lr(e,t,r){return I(e,r),r=>w(e,t,[r])}function sr(e,t,r){return I(e,r),r=>S(e,t,[r])}function ur(e,t,r){return I(e,r),(r,o)=>w(e,t,[r,o])}Object.defineProperties(CountQueuingStrategy.prototype,{highWaterMark:{enumerable:!0},size:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(CountQueuingStrategy.prototype,t.toStringTag,{value:"CountQueuingStrategy",configurable:!0});class TransformStream{constructor(e={},t={},r={}){void 0===e&&(e=null);const o=Qe(t,"Second parameter"),n=Qe(r,"Third parameter"),a=function(e,t){D(e,t);const r=null==e?void 0:e.flush,o=null==e?void 0:e.readableType,n=null==e?void 0:e.start,a=null==e?void 0:e.transform,i=null==e?void 0:e.writableType;return{flush:void 0===r?void 0:lr(r,e,`${t} has member 'flush' that`),readableType:o,start:void 0===n?void 0:sr(n,e,`${t} has member 'start' that`),transform:void 0===a?void 0:ur(a,e,`${t} has member 'transform' that`),writableType:i}}(e,"First parameter");if(void 0!==a.readableType)throw new RangeError("Invalid readableType specified");if(void 0!==a.writableType)throw new RangeError("Invalid writableType specified");const i=Me(n,0),l=Ye(n),s=Me(o,1),u=Ye(o);let b;!function(e,t,r,o,n,a){function i(){return t}function l(t){return function(e,t){const r=e._transformStreamController;if(e._backpressure){return m(e._backpressureChangePromise,(()=>{if("erroring"===(Xe(e._writable)?e._writable._state:e._writableState))throw Xe(e._writable)?e._writable._storedError:e._writableStoredError;return mr(r,t)}))}return mr(r,t)}(e,t)}function s(t){return function(e,t){return dr(e,t),d(void 0)}(e,t)}function u(){return function(e){const t=e._transformStreamController,r=t._flushAlgorithm();return _r(t),m(r,(()=>{if("errored"===e._readableState)throw e._readableStoredError;Sr(e)&&wr(e)}),(t=>{throw dr(e,t),e._readableStoredError}))}(e)}function c(){return function(e){return br(e,!1),e._backpressureChangePromise}(e)}function f(t){return fr(e,t),d(void 0)}e._writableState="writable",e._writableStoredError=void 0,e._writableHasInFlightOperation=!1,e._writableStarted=!1,e._writable=function(e,t,r,o,n,a,i){return new WritableStream({start(r){e._writableController=r;try{const t=r.signal;void 0!==t&&t.addEventListener("abort",(()=>{"writable"===e._writableState&&(e._writableState="erroring",t.reason&&(e._writableStoredError=t.reason))}))}catch(e){}return m(t(),(()=>(e._writableStarted=!0,Pr(e),null)),(t=>{throw e._writableStarted=!0,Tr(e,t),t}))},write:t=>(function(e){e._writableHasInFlightOperation=!0}(e),m(r(t),(()=>(function(e){e._writableHasInFlightOperation=!1}(e),Pr(e),null)),(t=>{throw function(e,t){e._writableHasInFlightOperation=!1,Tr(e,t)}(e,t),t}))),close:()=>(function(e){e._writableHasInFlightOperation=!0}(e),m(o(),(()=>(function(e){e._writableHasInFlightOperation=!1;"erroring"===e._writableState&&(e._writableStoredError=void 0);e._writableState="closed"}(e),null)),(t=>{throw function(e,t){e._writableHasInFlightOperation=!1,e._writableState,Tr(e,t)}(e,t),t}))),abort:t=>(e._writableState="errored",e._writableStoredError=t,n(t))},{highWaterMark:a,size:i})}(e,i,l,u,s,r,o),e._readableState="readable",e._readableStoredError=void 0,e._readableCloseRequested=!1,e._readablePulling=!1,e._readable=function(e,t,r,o,n,a){return new ReadableStream({start:r=>(e._readableController=r,t().catch((t=>{vr(e,t)}))),pull:()=>(e._readablePulling=!0,r().catch((t=>{vr(e,t)}))),cancel:t=>(e._readableState="closed",o(t))},{highWaterMark:n,size:a})}(e,i,c,f,n,a),e._backpressure=void 0,e._backpressureChangePromise=void 0,e._backpressureChangePromise_resolve=void 0,br(e,!0),e._transformStreamController=void 0}(this,c((e=>{b=e})),s,u,i,l),function(e,t){const r=Object.create(TransformStreamDefaultController.prototype);let o,n;o=void 0!==t.transform?e=>t.transform(e,r):e=>{try{return pr(r,e),d(void 0)}catch(e){return f(e)}};n=void 0!==t.flush?()=>t.flush(r):()=>d(void 0);!function(e,t,r,o){t._controlledTransformStream=e,e._transformStreamController=t,t._transformAlgorithm=r,t._flushAlgorithm=o}(e,r,o,n)}(this,a),void 0!==a.start?b(a.start(this._transformStreamController)):b(void 0)}get readable(){if(!cr(this))throw gr("readable");return this._readable}get writable(){if(!cr(this))throw gr("writable");return this._writable}}function cr(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_transformStreamController")&&e instanceof TransformStream)}function dr(e,t){vr(e,t),fr(e,t)}function fr(e,t){_r(e._transformStreamController),function(e,t){e._writableController.error(t);"writable"===e._writableState&&qr(e,t)}(e,t),e._backpressure&&br(e,!1)}function br(e,t){void 0!==e._backpressureChangePromise&&e._backpressureChangePromise_resolve(),e._backpressureChangePromise=c((t=>{e._backpressureChangePromise_resolve=t})),e._backpressure=t}Object.defineProperties(TransformStream.prototype,{readable:{enumerable:!0},writable:{enumerable:!0}}),"symbol"==typeof t.toStringTag&&Object.defineProperty(TransformStream.prototype,t.toStringTag,{value:"TransformStream",configurable:!0});class TransformStreamDefaultController{constructor(){throw new TypeError("Illegal constructor")}get desiredSize(){if(!hr(this))throw yr("desiredSize");return Rr(this._controlledTransformStream)}enqueue(e){if(!hr(this))throw yr("enqueue");pr(this,e)}error(e){if(!hr(this))throw yr("error");var t;t=e,dr(this._controlledTransformStream,t)}terminate(){if(!hr(this))throw yr("terminate");!function(e){const t=e._controlledTransformStream;Sr(t)&&wr(t);const r=new TypeError("TransformStream terminated");fr(t,r)}(this)}}function hr(e){return!!o(e)&&(!!Object.prototype.hasOwnProperty.call(e,"_controlledTransformStream")&&e instanceof TransformStreamDefaultController)}function _r(e){e._transformAlgorithm=void 0,e._flushAlgorithm=void 0}function pr(e,t){const r=e._controlledTransformStream;if(!Sr(r))throw new TypeError("Readable side is not in a state that permits enqueue");try{!function(e,t){e._readablePulling=!1;try{e._readableController.enqueue(t)}catch(t){throw vr(e,t),t}}(r,t)}catch(e){throw fr(r,e),r._readableStoredError}const o=function(e){return!function(e){if(!Sr(e))return!1;if(e._readablePulling)return!0;if(Rr(e)>0)return!0;return!1}(e)}(r);o!==r._backpressure&&br(r,!0)}function mr(e,t){return m(e._transformAlgorithm(t),void 0,(t=>{throw dr(e._controlledTransformStream,t),t}))}function yr(e){return new TypeError(`TransformStreamDefaultController.prototype.${e} can only be used on a TransformStreamDefaultController`)}function gr(e){return new TypeError(`TransformStream.prototype.${e} can only be used on a TransformStream`)}function Sr(e){return!e._readableCloseRequested&&"readable"===e._readableState}function wr(e){e._readableState="closed",e._readableCloseRequested=!0,e._readableController.close()}function vr(e,t){"readable"===e._readableState&&(e._readableState="errored",e._readableStoredError=t),e._readableController.error(t)}function Rr(e){return e._readableController.desiredSize}function Tr(e,t){"writable"!==e._writableState?Cr(e):qr(e,t)}function qr(e,t){e._writableState="erroring",e._writableStoredError=t,!function(e){return e._writableHasInFlightOperation}(e)&&e._writableStarted&&Cr(e)}function Cr(e){e._writableState="errored"}function Pr(e){"erroring"===e._writableState&&Cr(e)}Object.defineProperties(TransformStreamDefaultController.prototype,{enqueue:{enumerable:!0},error:{enumerable:!0},terminate:{enumerable:!0},desiredSize:{enumerable:!0}}),a(TransformStreamDefaultController.prototype.enqueue,"enqueue"),a(TransformStreamDefaultController.prototype.error,"error"),a(TransformStreamDefaultController.prototype.terminate,"terminate"),"symbol"==typeof t.toStringTag&&Object.defineProperty(TransformStreamDefaultController.prototype,t.toStringTag,{value:"TransformStreamDefaultController",configurable:!0}),e.ByteLengthQueuingStrategy=ByteLengthQueuingStrategy,e.CountQueuingStrategy=CountQueuingStrategy,e.ReadableByteStreamController=ReadableByteStreamController,e.ReadableStream=ReadableStream,e.ReadableStreamBYOBReader=ReadableStreamBYOBReader,e.ReadableStreamBYOBRequest=ReadableStreamBYOBRequest,e.ReadableStreamDefaultController=ReadableStreamDefaultController,e.ReadableStreamDefaultReader=ReadableStreamDefaultReader,e.TransformStream=TransformStream,e.TransformStreamDefaultController=TransformStreamDefaultController,e.WritableStream=WritableStream,e.WritableStreamDefaultController=WritableStreamDefaultController,e.WritableStreamDefaultWriter=WritableStreamDefaultWriter,Object.defineProperty(e,"__esModule",{value:!0})})); - - -/***/ }), - -/***/ 845: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; -/*! - * humanize-ms - index.js - * Copyright(c) 2014 dead_horse - * MIT Licensed - */ - - - -/** - * Module dependencies. - */ - -var util = __nccwpck_require__(3837); -var ms = __nccwpck_require__(900); - -module.exports = function (t) { - if (typeof t === 'number') return t; - var r = ms(t); - if (r === undefined) { - var err = new Error(util.format('humanize-ms(%j) result undefined', t)); - console.warn(err.stack); - } - return r; -}; - - -/***/ }), - -/***/ 3287: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -/*! - * is-plain-object - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ - -function isObject(o) { - return Object.prototype.toString.call(o) === '[object Object]'; -} - -function isPlainObject(o) { - var ctor,prot; - - if (isObject(o) === false) return false; - - // If has modified constructor - ctor = o.constructor; - if (ctor === undefined) return true; - - // If has modified prototype - prot = ctor.prototype; - if (isObject(prot) === false) return false; - - // If constructor does not have an Object-specific method - if (prot.hasOwnProperty('isPrototypeOf') === false) { - return false; - } - - // Most likely a plain Object - return true; -} - -exports.isPlainObject = isPlainObject; - - -/***/ }), - -/***/ 7073: -/***/ ((module, exports) => { - -exports = module.exports = stringify -exports.getSerialize = serializer - -function stringify(obj, replacer, spaces, cycleReplacer) { - return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces) -} - -function serializer(replacer, cycleReplacer) { - var stack = [], keys = [] - - if (cycleReplacer == null) cycleReplacer = function(key, value) { - if (stack[0] === value) return "[Circular ~]" - return "[Circular ~." + keys.slice(0, stack.indexOf(value)).join(".") + "]" - } - - return function(key, value) { - if (stack.length > 0) { - var thisPos = stack.indexOf(this) - ~thisPos ? stack.splice(thisPos + 1) : stack.push(this) - ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key) - if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value) - } - else stack.push(value) - - return replacer == null ? value : replacer.call(this, key, value) - } -} - - -/***/ }), - -/***/ 900: -/***/ ((module) => { - -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var w = d * 7; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} [options] - * @throws {Error} throw an error if val is not a non-empty string or a number - * @return {String|Number} - * @api public - */ - -module.exports = function (val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse(val); - } else if (type === 'number' && isFinite(val)) { - return options.long ? fmtLong(val) : fmtShort(val); - } - throw new Error( - 'val is not a non-empty string or a valid number. val=' + - JSON.stringify(val) - ); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = String(str); - if (str.length > 100) { - return; - } - var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'weeks': - case 'week': - case 'w': - return n * w; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtShort(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return Math.round(ms / d) + 'd'; - } - if (msAbs >= h) { - return Math.round(ms / h) + 'h'; - } - if (msAbs >= m) { - return Math.round(ms / m) + 'm'; - } - if (msAbs >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtLong(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return plural(ms, msAbs, d, 'day'); - } - if (msAbs >= h) { - return plural(ms, msAbs, h, 'hour'); - } - if (msAbs >= m) { - return plural(ms, msAbs, m, 'minute'); - } - if (msAbs >= s) { - return plural(ms, msAbs, s, 'second'); - } - return ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, msAbs, n, name) { - var isPlural = msAbs >= n * 1.5; - return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); -} - - -/***/ }), - -/***/ 8437: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const back = __nccwpck_require__(1846) -const emitter = __nccwpck_require__(9935) -const { - activate, - isActive, - isDone, - isOn, - pendingMocks, - activeMocks, - removeInterceptor, - disableNetConnect, - enableNetConnect, - removeAll, - abortPendingRequests, -} = __nccwpck_require__(7607) -const recorder = __nccwpck_require__(8687) -const { Scope, load, loadDefs, define } = __nccwpck_require__(7004) - -module.exports = (basePath, options) => new Scope(basePath, options) - -Object.assign(module.exports, { - activate, - isActive, - isDone, - pendingMocks, - activeMocks, - removeInterceptor, - disableNetConnect, - enableNetConnect, - cleanAll: removeAll, - abortPendingRequests, - load, - loadDefs, - define, - emitter, - recorder: { - rec: recorder.record, - clear: recorder.clear, - play: recorder.outputs, - }, - restore: recorder.restore, - back, -}) - -// We always activate Nock on import, overriding the globals. -// Setting the Back mode "activates" Nock by overriding the global entries in the `http/s` modules. -// If Nock Back is configured, we need to honor that setting for backward compatibility, -// otherwise we rely on Nock Back's default initializing side effect. -if (isOn()) { - back.setMode(process.env.NOCK_BACK_MODE || 'dryrun') -} - - -/***/ }), - -/***/ 1846: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const assert = __nccwpck_require__(9491) -const recorder = __nccwpck_require__(8687) -const { - activate, - disableNetConnect, - enableNetConnect, - removeAll: cleanAll, -} = __nccwpck_require__(7607) -const { loadDefs, define } = __nccwpck_require__(7004) - -const { format } = __nccwpck_require__(3837) -const path = __nccwpck_require__(1017) -const debug = __nccwpck_require__(8237)('nock.back') - -let _mode = null - -let fs - -try { - fs = __nccwpck_require__(7147) -} catch (err) { - // do nothing, probably in browser -} - -/** - * nock the current function with the fixture given - * - * @param {string} fixtureName - the name of the fixture, e.x. 'foo.json' - * @param {object} options - [optional] extra options for nock with, e.x. `{ assert: true }` - * @param {function} nockedFn - [optional] callback function to be executed with the given fixture being loaded; - * if defined the function will be called with context `{ scopes: loaded_nocks || [] }` - * set as `this` and `nockDone` callback function as first and only parameter; - * if not defined a promise resolving to `{nockDone, context}` where `context` is - * aforementioned `{ scopes: loaded_nocks || [] }` - * - * List of options: - * - * @param {function} before - a preprocessing function, gets called before nock.define - * @param {function} after - a postprocessing function, gets called after nock.define - * @param {function} afterRecord - a postprocessing function, gets called after recording. Is passed the array - * of scopes recorded and should return the array scopes to save to the fixture - * @param {function} recorder - custom options to pass to the recorder - * - */ -function Back(fixtureName, options, nockedFn) { - if (!Back.fixtures) { - throw new Error( - 'Back requires nock.back.fixtures to be set\n' + - 'Ex:\n' + - "\trequire(nock).back.fixtures = '/path/to/fixtures/'", - ) - } - - if (typeof fixtureName !== 'string') { - throw new Error('Parameter fixtureName must be a string') - } - - if (arguments.length === 1) { - options = {} - } else if (arguments.length === 2) { - // If 2nd parameter is a function then `options` has been omitted - // otherwise `options` haven't been omitted but `nockedFn` was. - if (typeof options === 'function') { - nockedFn = options - options = {} - } - } - - _mode.setup() - - const fixture = path.join(Back.fixtures, fixtureName) - const context = _mode.start(fixture, options) - - const nockDone = function () { - _mode.finish(fixture, options, context) - } - - debug('context:', context) - - // If nockedFn is a function then invoke it, otherwise return a promise resolving to nockDone. - if (typeof nockedFn === 'function') { - nockedFn.call(context, nockDone) - } else { - return Promise.resolve({ nockDone, context }) - } -} - -/******************************************************************************* - * Modes * - *******************************************************************************/ - -const wild = { - setup: function () { - cleanAll() - recorder.restore() - activate() - enableNetConnect() - }, - - start: function () { - return load() // don't load anything but get correct context - }, - - finish: function () { - // nothing to do - }, -} - -const dryrun = { - setup: function () { - recorder.restore() - cleanAll() - activate() - // We have to explicitly enable net connectivity as by default it's off. - enableNetConnect() - }, - - start: function (fixture, options) { - const contexts = load(fixture, options) - - enableNetConnect() - return contexts - }, - - finish: function () { - // nothing to do - }, -} - -const record = { - setup: function () { - recorder.restore() - recorder.clear() - cleanAll() - activate() - disableNetConnect() - }, - - start: function (fixture, options) { - if (!fs) { - throw new Error('no fs') - } - const context = load(fixture, options) - - if (!context.isLoaded) { - recorder.record({ - dont_print: true, - output_objects: true, - ...options.recorder, - }) - - context.isRecording = true - } - - return context - }, - - finish: function (fixture, options, context) { - if (context.isRecording) { - let outputs = recorder.outputs() - - if (typeof options.afterRecord === 'function') { - outputs = options.afterRecord(outputs) - } - - outputs = - typeof outputs === 'string' ? outputs : JSON.stringify(outputs, null, 4) - debug('recorder outputs:', outputs) - - fs.mkdirSync(path.dirname(fixture), { recursive: true }) - fs.writeFileSync(fixture, outputs) - } - }, -} - -const update = { - setup: function () { - recorder.restore() - recorder.clear() - cleanAll() - activate() - disableNetConnect() - }, - - start: function (fixture, options) { - if (!fs) { - throw new Error('no fs') - } - const context = removeFixture(fixture) - recorder.record({ - dont_print: true, - output_objects: true, - ...options.recorder, - }) - - context.isRecording = true - - return context - }, - - finish: function (fixture, options, context) { - let outputs = recorder.outputs() - - if (typeof options.afterRecord === 'function') { - outputs = options.afterRecord(outputs) - } - - outputs = - typeof outputs === 'string' ? outputs : JSON.stringify(outputs, null, 4) - debug('recorder outputs:', outputs) - - fs.mkdirSync(path.dirname(fixture), { recursive: true }) - fs.writeFileSync(fixture, outputs) - }, -} - -const lockdown = { - setup: function () { - recorder.restore() - recorder.clear() - cleanAll() - activate() - disableNetConnect() - }, - - start: function (fixture, options) { - return load(fixture, options) - }, - - finish: function () { - // nothing to do - }, -} - -function load(fixture, options) { - const context = { - scopes: [], - assertScopesFinished: function () { - assertScopes(this.scopes, fixture) - }, - query: function () { - const nested = this.scopes.map(scope => - scope.interceptors.map(interceptor => ({ - method: interceptor.method, - uri: interceptor.uri, - basePath: interceptor.basePath, - path: interceptor.path, - queries: interceptor.queries, - counter: interceptor.counter, - body: interceptor.body, - statusCode: interceptor.statusCode, - optional: interceptor.optional, - })), - ) - - return [].concat.apply([], nested) - }, - } - - if (fixture && fixtureExists(fixture)) { - let scopes = loadDefs(fixture) - applyHook(scopes, options.before) - - scopes = define(scopes) - applyHook(scopes, options.after) - - context.scopes = scopes - context.isLoaded = true - } - - return context -} - -function removeFixture(fixture, options) { - const context = { - scopes: [], - assertScopesFinished: function () {}, - } - - if (fixture && fixtureExists(fixture)) { - /* istanbul ignore next - fs.unlinkSync is for node 10 support */ - fs.rmSync ? fs.rmSync(fixture) : fs.unlinkSync(fixture) - } - context.isLoaded = false - return context -} - -function applyHook(scopes, fn) { - if (!fn) { - return - } - - if (typeof fn !== 'function') { - throw new Error('processing hooks must be a function') - } - - scopes.forEach(fn) -} - -function fixtureExists(fixture) { - if (!fs) { - throw new Error('no fs') - } - - return fs.existsSync(fixture) -} - -function assertScopes(scopes, fixture) { - const pending = scopes - .filter(scope => !scope.isDone()) - .map(scope => scope.pendingMocks()) - - if (pending.length) { - assert.fail( - format( - '%j was not used, consider removing %s to rerecord fixture', - [].concat(...pending), - fixture, - ), - ) - } -} - -const Modes = { - wild, // all requests go out to the internet, dont replay anything, doesnt record anything - - dryrun, // use recorded nocks, allow http calls, doesnt record anything, useful for writing new tests (default) - - record, // use recorded nocks, record new nocks - - update, // allow http calls, record all nocks, don't use recorded nocks - - lockdown, // use recorded nocks, disables all http calls even when not nocked, doesnt record -} - -Back.setMode = function (mode) { - if (!(mode in Modes)) { - throw new Error(`Unknown mode: ${mode}`) - } - - Back.currentMode = mode - debug('New nock back mode:', Back.currentMode) - - _mode = Modes[mode] - _mode.setup() -} - -Back.fixtures = null -Back.currentMode = null - -module.exports = Back - - -/***/ }), - -/***/ 1521: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const debug = __nccwpck_require__(8237)('nock.common') -const timers = __nccwpck_require__(9512) -const url = __nccwpck_require__(7310) -const util = __nccwpck_require__(3837) - -/** - * Normalizes the request options so that it always has `host` property. - * - * @param {Object} options - a parsed options object of the request - */ -function normalizeRequestOptions(options) { - options.proto = options.proto || 'http' - options.port = options.port || (options.proto === 'http' ? 80 : 443) - if (options.host) { - debug('options.host:', options.host) - if (!options.hostname) { - if (options.host.split(':').length === 2) { - options.hostname = options.host.split(':')[0] - } else { - options.hostname = options.host - } - } - } - debug('options.hostname in the end: %j', options.hostname) - options.host = `${options.hostname || 'localhost'}:${options.port}` - debug('options.host in the end: %j', options.host) - - /// lowercase host names - ;['hostname', 'host'].forEach(function (attr) { - if (options[attr]) { - options[attr] = options[attr].toLowerCase() - } - }) - - return options -} - -/** - * Returns true if the data contained in buffer can be reconstructed - * from its utf8 representation. - * - * @param {Object} buffer - a Buffer object - * @returns {boolean} - */ -function isUtf8Representable(buffer) { - const utfEncodedBuffer = buffer.toString('utf8') - const reconstructedBuffer = Buffer.from(utfEncodedBuffer, 'utf8') - return reconstructedBuffer.equals(buffer) -} - -// Array where all information about all the overridden requests are held. -let requestOverrides = {} - -/** - * Overrides the current `request` function of `http` and `https` modules with - * our own version which intercepts issues HTTP/HTTPS requests and forwards them - * to the given `newRequest` function. - * - * @param {Function} newRequest - a function handling requests; it accepts four arguments: - * - proto - a string with the overridden module's protocol name (either `http` or `https`) - * - overriddenRequest - the overridden module's request function already bound to module's object - * - options - the options of the issued request - * - callback - the callback of the issued request - */ -function overrideRequests(newRequest) { - debug('overriding requests') - ;['http', 'https'].forEach(function (proto) { - debug('- overriding request for', proto) - - const moduleName = proto // 1 to 1 match of protocol and module is fortunate :) - const module = require(proto) - const overriddenRequest = module.request - const overriddenGet = module.get - - if (requestOverrides[moduleName]) { - throw new Error( - `Module's request already overridden for ${moduleName} protocol.`, - ) - } - - // Store the properties of the overridden request so that it can be restored later on. - requestOverrides[moduleName] = { - module, - request: overriddenRequest, - get: overriddenGet, - } - // https://nodejs.org/api/http.html#http_http_request_url_options_callback - module.request = function (input, options, callback) { - return newRequest(proto, overriddenRequest.bind(module), [ - input, - options, - callback, - ]) - } - // https://nodejs.org/api/http.html#http_http_get_options_callback - module.get = function (input, options, callback) { - const req = newRequest(proto, overriddenGet.bind(module), [ - input, - options, - callback, - ]) - req.end() - return req - } - - debug('- overridden request for', proto) - }) -} - -/** - * Restores `request` function of `http` and `https` modules to values they - * held before they were overridden by us. - */ -function restoreOverriddenRequests() { - debug('restoring requests') - Object.entries(requestOverrides).forEach( - ([proto, { module, request, get }]) => { - debug('- restoring request for', proto) - module.request = request - module.get = get - debug('- restored request for', proto) - }, - ) - requestOverrides = {} -} - -/** - * In WHATWG URL vernacular, this returns the origin portion of a URL. - * However, the port is not included if it's standard and not already present on the host. - */ -function normalizeOrigin(proto, host, port) { - const hostHasPort = host.includes(':') - const portIsStandard = - (proto === 'http' && (port === 80 || port === '80')) || - (proto === 'https' && (port === 443 || port === '443')) - const portStr = hostHasPort || portIsStandard ? '' : `:${port}` - - return `${proto}://${host}${portStr}` -} - -/** - * Get high level information about request as string - * @param {Object} options - * @param {string} options.method - * @param {number|string} options.port - * @param {string} options.proto Set internally. always http or https - * @param {string} options.hostname - * @param {string} options.path - * @param {Object} options.headers - * @param {string} body - * @return {string} - */ -function stringifyRequest(options, body) { - const { method = 'GET', path = '', port } = options - const origin = normalizeOrigin(options.proto, options.hostname, port) - - const log = { - method, - url: `${origin}${path}`, - headers: options.headers, - } - - if (body) { - log.body = body - } - - return JSON.stringify(log, null, 2) -} - -function isContentEncoded(headers) { - const contentEncoding = headers['content-encoding'] - return typeof contentEncoding === 'string' && contentEncoding !== '' -} - -function contentEncoding(headers, encoder) { - const contentEncoding = headers['content-encoding'] - return contentEncoding !== undefined && contentEncoding.toString() === encoder -} - -function isJSONContent(headers) { - // https://tools.ietf.org/html/rfc8259 - const contentType = String(headers['content-type'] || '').toLowerCase() - return contentType.startsWith('application/json') -} - -/** - * Return a new object with all field names of the headers lower-cased. - * - * Duplicates throw an error. - */ -function headersFieldNamesToLowerCase(headers, throwOnDuplicate) { - if (!isPlainObject(headers)) { - throw Error('Headers must be provided as an object') - } - - const lowerCaseHeaders = {} - Object.entries(headers).forEach(([fieldName, fieldValue]) => { - const key = fieldName.toLowerCase() - if (lowerCaseHeaders[key] !== undefined) { - if (throwOnDuplicate) { - throw Error( - `Failed to convert header keys to lower case due to field name conflict: ${key}`, - ) - } else { - debug( - `Duplicate header provided in request: ${key}. Only the last value can be matched.`, - ) - } - } - lowerCaseHeaders[key] = fieldValue - }) - - return lowerCaseHeaders -} - -const headersFieldsArrayToLowerCase = headers => [ - ...new Set(headers.map(fieldName => fieldName.toLowerCase())), -] - -/** - * Converts the various accepted formats of headers into a flat array representing "raw headers". - * - * Nock allows headers to be provided as a raw array, a plain object, or a Map. - * - * While all the header names are expected to be strings, the values are left intact as they can - * be functions, strings, or arrays of strings. - * - * https://nodejs.org/api/http.html#http_message_rawheaders - */ -function headersInputToRawArray(headers) { - if (headers === undefined) { - return [] - } - - if (Array.isArray(headers)) { - // If the input is an array, assume it's already in the raw format and simply return a copy - // but throw an error if there aren't an even number of items in the array - if (headers.length % 2) { - throw new Error( - `Raw headers must be provided as an array with an even number of items. [fieldName, value, ...]`, - ) - } - return [...headers] - } - - // [].concat(...) is used instead of Array.flat until v11 is the minimum Node version - if (util.types.isMap(headers)) { - return [].concat(...Array.from(headers, ([k, v]) => [k.toString(), v])) - } - - if (isPlainObject(headers)) { - return [].concat(...Object.entries(headers)) - } - - throw new Error( - `Headers must be provided as an array of raw values, a Map, or a plain Object. ${headers}`, - ) -} - -/** - * Converts an array of raw headers to an object, using the same rules as Nodes `http.IncomingMessage.headers`. - * - * Header names/keys are lower-cased. - */ -function headersArrayToObject(rawHeaders) { - if (!Array.isArray(rawHeaders)) { - throw Error('Expected a header array') - } - - const accumulator = {} - - forEachHeader(rawHeaders, (value, fieldName) => { - addHeaderLine(accumulator, fieldName, value) - }) - - return accumulator -} - -const noDuplicatesHeaders = new Set([ - 'age', - 'authorization', - 'content-length', - 'content-type', - 'etag', - 'expires', - 'from', - 'host', - 'if-modified-since', - 'if-unmodified-since', - 'last-modified', - 'location', - 'max-forwards', - 'proxy-authorization', - 'referer', - 'retry-after', - 'user-agent', -]) - -/** - * Set key/value data in accordance with Node's logic for folding duplicate headers. - * - * The `value` param should be a function, string, or array of strings. - * - * Node's docs and source: - * https://nodejs.org/api/http.html#http_message_headers - * https://github.com/nodejs/node/blob/908292cf1f551c614a733d858528ffb13fb3a524/lib/_http_incoming.js#L245 - * - * Header names are lower-cased. - * Duplicates in raw headers are handled in the following ways, depending on the header name: - * - Duplicates of field names listed in `noDuplicatesHeaders` (above) are discarded. - * - `set-cookie` is always an array. Duplicates are added to the array. - * - For duplicate `cookie` headers, the values are joined together with '; '. - * - For all other headers, the values are joined together with ', '. - * - * Node's implementation is larger because it highly optimizes for not having to call `toLowerCase()`. - * We've opted to always call `toLowerCase` in exchange for a more concise function. - * - * While Node has the luxury of knowing `value` is always a string, we do an extra step of coercion at the top. - */ -function addHeaderLine(headers, name, value) { - let values // code below expects `values` to be an array of strings - if (typeof value === 'function') { - // Function values are evaluated towards the end of the response, before that we use a placeholder - // string just to designate that the header exists. Useful when `Content-Type` is set with a function. - values = [value.name] - } else if (Array.isArray(value)) { - values = value.map(String) - } else { - values = [String(value)] - } - - const key = name.toLowerCase() - if (key === 'set-cookie') { - // Array header -- only Set-Cookie at the moment - if (headers['set-cookie'] === undefined) { - headers['set-cookie'] = values - } else { - headers['set-cookie'].push(...values) - } - } else if (noDuplicatesHeaders.has(key)) { - if (headers[key] === undefined) { - // Drop duplicates - headers[key] = values[0] - } - } else { - if (headers[key] !== undefined) { - values = [headers[key], ...values] - } - - const separator = key === 'cookie' ? '; ' : ', ' - headers[key] = values.join(separator) - } -} - -/** - * Deletes the given `fieldName` property from `headers` object by performing - * case-insensitive search through keys. - * - * @headers {Object} headers - object of header field names and values - * @fieldName {String} field name - string with the case-insensitive field name - */ -function deleteHeadersField(headers, fieldNameToDelete) { - if (!isPlainObject(headers)) { - throw Error('headers must be an object') - } - - if (typeof fieldNameToDelete !== 'string') { - throw Error('field name must be a string') - } - - const lowerCaseFieldNameToDelete = fieldNameToDelete.toLowerCase() - - // Search through the headers and delete all values whose field name matches the given field name. - Object.keys(headers) - .filter(fieldName => fieldName.toLowerCase() === lowerCaseFieldNameToDelete) - .forEach(fieldName => delete headers[fieldName]) -} - -/** - * Utility for iterating over a raw headers array. - * - * The callback is called with: - * - The header value. string, array of strings, or a function - * - The header field name. string - * - Index of the header field in the raw header array. - */ -function forEachHeader(rawHeaders, callback) { - for (let i = 0; i < rawHeaders.length; i += 2) { - callback(rawHeaders[i + 1], rawHeaders[i], i) - } -} - -function percentDecode(str) { - try { - return decodeURIComponent(str.replace(/\+/g, ' ')) - } catch (e) { - return str - } -} - -/** - * URI encode the provided string, stringently adhering to RFC 3986. - * - * RFC 3986 reserves !, ', (, ), and * but encodeURIComponent does not encode them so we do it manually. - * - * https://tools.ietf.org/html/rfc3986 - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent - */ -function percentEncode(str) { - return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { - return `%${c.charCodeAt(0).toString(16).toUpperCase()}` - }) -} - -function matchStringOrRegexp(target, pattern) { - const targetStr = - target === undefined || target === null ? '' : String(target) - - if (pattern instanceof RegExp) { - // if the regexp happens to have a global flag, we want to ensure we test the entire target - pattern.lastIndex = 0 - return pattern.test(targetStr) - } - return targetStr === String(pattern) -} - -/** - * Formats a query parameter. - * - * @param key The key of the query parameter to format. - * @param value The value of the query parameter to format. - * @param stringFormattingFn The function used to format string values. Can - * be used to encode or decode the query value. - * - * @returns *[] the formatted [key, value] pair. - */ -function formatQueryValue(key, value, stringFormattingFn) { - // TODO: Probably refactor code to replace `switch(true)` with `if`/`else`. - switch (true) { - case typeof value === 'number': // fall-through - case typeof value === 'boolean': - value = value.toString() - break - case value === null: - case value === undefined: - value = '' - break - case typeof value === 'string': - if (stringFormattingFn) { - value = stringFormattingFn(value) - } - break - case value instanceof RegExp: - break - case Array.isArray(value): { - value = value.map(function (val, idx) { - return formatQueryValue(idx, val, stringFormattingFn)[1] - }) - break - } - case typeof value === 'object': { - value = Object.entries(value).reduce(function (acc, [subKey, subVal]) { - const subPair = formatQueryValue(subKey, subVal, stringFormattingFn) - acc[subPair[0]] = subPair[1] - - return acc - }, {}) - break - } - } - - if (stringFormattingFn) key = stringFormattingFn(key) - return [key, value] -} - -function isStream(obj) { - return ( - obj && - typeof obj !== 'string' && - !Buffer.isBuffer(obj) && - typeof obj.setEncoding === 'function' - ) -} - -/** - * Converts the arguments from the various signatures of http[s].request into a standard - * options object and an optional callback function. - * - * https://nodejs.org/api/http.html#http_http_request_url_options_callback - * - * Taken from the beginning of the native `ClientRequest`. - * https://github.com/nodejs/node/blob/908292cf1f551c614a733d858528ffb13fb3a524/lib/_http_client.js#L68 - */ -function normalizeClientRequestArgs(input, options, cb) { - if (typeof input === 'string') { - input = urlToOptions(new url.URL(input)) - } else if (input instanceof url.URL) { - input = urlToOptions(input) - } else { - cb = options - options = input - input = null - } - - if (typeof options === 'function') { - cb = options - options = input || {} - } else { - options = Object.assign(input || {}, options) - } - - return { options, callback: cb } -} - -/** - * Utility function that converts a URL object into an ordinary - * options object as expected by the http.request and https.request APIs. - * - * This was copied from Node's source - * https://github.com/nodejs/node/blob/908292cf1f551c614a733d858528ffb13fb3a524/lib/internal/url.js#L1257 - */ -function urlToOptions(url) { - const options = { - protocol: url.protocol, - hostname: - typeof url.hostname === 'string' && url.hostname.startsWith('[') - ? url.hostname.slice(1, -1) - : url.hostname, - hash: url.hash, - search: url.search, - pathname: url.pathname, - path: `${url.pathname}${url.search || ''}`, - href: url.href, - } - if (url.port !== '') { - options.port = Number(url.port) - } - if (url.username || url.password) { - options.auth = `${url.username}:${url.password}` - } - return options -} - -/** - * Determines if request data matches the expected schema. - * - * Used for comparing decoded search parameters, request body JSON objects, - * and URL decoded request form bodies. - * - * Performs a general recursive strict comparison with two caveats: - * - The expected data can use regexp to compare values - * - JSON path notation and nested objects are considered equal - */ -const dataEqual = (expected, actual) => { - if (isPlainObject(expected)) { - expected = expand(expected) - } - if (isPlainObject(actual)) { - actual = expand(actual) - } - return deepEqual(expected, actual) -} - -/** - * Performs a recursive strict comparison between two values. - * - * Expected values or leaf nodes of expected object values that are RegExp use test() for comparison. - */ -function deepEqual(expected, actual) { - debug('deepEqual comparing', typeof expected, expected, typeof actual, actual) - if (expected instanceof RegExp) { - return expected.test(actual) - } - - if (Array.isArray(expected) && Array.isArray(actual)) { - if (expected.length !== actual.length) { - return false - } - - return expected.every((expVal, idx) => deepEqual(expVal, actual[idx])) - } - - if (isPlainObject(expected) && isPlainObject(actual)) { - const allKeys = Array.from( - new Set(Object.keys(expected).concat(Object.keys(actual))), - ) - - return allKeys.every(key => deepEqual(expected[key], actual[key])) - } - - return expected === actual -} - -const timeouts = new Set() -const immediates = new Set() - -const wrapTimer = - (timer, ids) => - (callback, ...timerArgs) => { - const cb = (...callbackArgs) => { - try { - // eslint-disable-next-line n/no-callback-literal - callback(...callbackArgs) - } finally { - ids.delete(id) - } - } - const id = timer(cb, ...timerArgs) - ids.add(id) - return id - } - -const setTimeout = wrapTimer(timers.setTimeout, timeouts) -const setImmediate = wrapTimer(timers.setImmediate, immediates) - -function clearTimer(clear, ids) { - ids.forEach(clear) - ids.clear() -} - -function removeAllTimers() { - clearTimer(clearTimeout, timeouts) - clearTimer(clearImmediate, immediates) -} - -/** - * Check if the Client Request has been cancelled. - * - * Until Node 14 is the minimum, we need to look at both flags to see if the request has been cancelled. - * The two flags have the same purpose, but the Node maintainers are migrating from `abort(ed)` to - * `destroy(ed)` terminology, to be more consistent with `stream.Writable`. - * In Node 14.x+, Calling `abort()` will set both `aborted` and `destroyed` to true, however, - * calling `destroy()` will only set `destroyed` to true. - * Falling back on checking if the socket is destroyed to cover the case of Node <14.x where - * `destroy()` is called, but `destroyed` is undefined. - * - * Node Client Request history: - * - `request.abort()`: Added in: v0.3.8, Deprecated since: v14.1.0, v13.14.0 - * - `request.aborted`: Added in: v0.11.14, Became a boolean instead of a timestamp: v11.0.0, Not deprecated (yet) - * - `request.destroy()`: Added in: v0.3.0 - * - `request.destroyed`: Added in: v14.1.0, v13.14.0 - * - * @param {ClientRequest} req - * @returns {boolean} - */ -function isRequestDestroyed(req) { - return !!( - req.destroyed === true || - req.aborted || - (req.socket && req.socket.destroyed) - ) -} - -/** - * Returns true if the given value is a plain object and not an Array. - * @param {*} value - * @returns {boolean} - */ -function isPlainObject(value) { - if (typeof value !== 'object' || value === null) return false - - if (Object.prototype.toString.call(value) !== '[object Object]') return false - - const proto = Object.getPrototypeOf(value) - if (proto === null) return true - - const Ctor = - Object.prototype.hasOwnProperty.call(proto, 'constructor') && - proto.constructor - return ( - typeof Ctor === 'function' && - Ctor instanceof Ctor && - Function.prototype.call(Ctor) === Function.prototype.call(value) - ) -} - -const prototypePollutionBlockList = ['__proto__', 'prototype', 'constructor'] -const blocklistFilter = function (part) { - return prototypePollutionBlockList.indexOf(part) === -1 -} - -/** - * Converts flat objects whose keys use JSON path notation to nested objects. - * - * The input object is not mutated. - * - * @example - * { 'foo[bar][0]': 'baz' } -> { foo: { bar: [ 'baz' ] } } - */ -const expand = input => { - if (input === undefined || input === null) { - return input - } - - const keys = Object.keys(input) - - const result = {} - let resultPtr = result - - for (let path of keys) { - const originalPath = path - if (path.indexOf('[') >= 0) { - path = path.replace(/\[/g, '.').replace(/]/g, '') - } - - const parts = path.split('.') - - const check = parts.filter(blocklistFilter) - - if (check.length !== parts.length) { - return undefined - } - resultPtr = result - const lastIndex = parts.length - 1 - - for (let i = 0; i < parts.length; ++i) { - const part = parts[i] - if (i === lastIndex) { - if (Array.isArray(resultPtr)) { - resultPtr[+part] = input[originalPath] - } else { - resultPtr[part] = input[originalPath] + const n = r; + function a(e, t) { + try { + Object.defineProperty(e, "name", { value: t, configurable: !0 }); + } catch (e) {} } - } else { - if (resultPtr[part] === undefined || resultPtr[part] === null) { - const nextPart = parts[i + 1] - if (/^\d+$/.test(nextPart)) { - resultPtr[part] = [] - } else { - resultPtr[part] = {} + const i = Promise, + l = Promise.prototype.then, + s = Promise.resolve.bind(i), + u = Promise.reject.bind(i); + function c(e) { + return new i(e); + } + function d(e) { + return s(e); + } + function f(e) { + return u(e); + } + function b(e, t, r) { + return l.call(e, t, r); + } + function h(e, t, r) { + b(b(e, t, r), void 0, n); + } + function _(e, t) { + h(e, t); + } + function p(e, t) { + h(e, void 0, t); + } + function m(e, t, r) { + return b(e, t, r); + } + function y(e) { + b(e, void 0, n); + } + let g = (e) => { + if ("function" == typeof queueMicrotask) g = queueMicrotask; + else { + const e = d(void 0); + g = (t) => b(e, t); + } + return g(e); + }; + function S(e, t, r) { + if ("function" != typeof e) + throw new TypeError("Argument is not a function"); + return Function.prototype.apply.call(e, t, r); + } + function w(e, t, r) { + try { + return d(S(e, t, r)); + } catch (e) { + return f(e); } } - resultPtr = resultPtr[part] - } - } - } - return result -} + class v { + constructor() { + (this._cursor = 0), + (this._size = 0), + (this._front = { _elements: [], _next: void 0 }), + (this._back = this._front), + (this._cursor = 0), + (this._size = 0); + } + get length() { + return this._size; + } + push(e) { + const t = this._back; + let r = t; + 16383 === t._elements.length && + (r = { _elements: [], _next: void 0 }), + t._elements.push(e), + r !== t && ((this._back = r), (t._next = r)), + ++this._size; + } + shift() { + const e = this._front; + let t = e; + const r = this._cursor; + let o = r + 1; + const n = e._elements, + a = n[r]; + return ( + 16384 === o && ((t = e._next), (o = 0)), + --this._size, + (this._cursor = o), + e !== t && (this._front = t), + (n[r] = void 0), + a + ); + } + forEach(e) { + let t = this._cursor, + r = this._front, + o = r._elements; + for ( + ; + !( + (t === o.length && void 0 === r._next) || + (t === o.length && + ((r = r._next), (o = r._elements), (t = 0), 0 === o.length)) + ); -module.exports = { - contentEncoding, - dataEqual, - deleteHeadersField, - expand, - forEachHeader, - formatQueryValue, - headersArrayToObject, - headersFieldNamesToLowerCase, - headersFieldsArrayToLowerCase, - headersInputToRawArray, - isContentEncoded, - isJSONContent, - isPlainObject, - isRequestDestroyed, - isStream, - isUtf8Representable, - matchStringOrRegexp, - normalizeClientRequestArgs, - normalizeOrigin, - normalizeRequestOptions, - overrideRequests, - percentDecode, - percentEncode, - removeAllTimers, - restoreOverriddenRequests, - setImmediate, - setTimeout, - stringifyRequest, -} - - -/***/ }), - -/***/ 9935: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { EventEmitter } = __nccwpck_require__(2361) - -module.exports = new EventEmitter() - - -/***/ }), - -/***/ 7607: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -/** - * @module nock/intercept - */ - -const { InterceptedRequestRouter } = __nccwpck_require__(4694) -const common = __nccwpck_require__(1521) -const { inherits } = __nccwpck_require__(3837) -const http = __nccwpck_require__(3685) -const debug = __nccwpck_require__(8237)('nock.intercept') -const globalEmitter = __nccwpck_require__(9935) - -/** - * @name NetConnectNotAllowedError - * @private - * @desc Error trying to make a connection when disabled external access. - * @class - * @example - * nock.disableNetConnect(); - * http.get('http://zombo.com'); - * // throw NetConnectNotAllowedError - */ -function NetConnectNotAllowedError(host, path) { - Error.call(this) - - this.name = 'NetConnectNotAllowedError' - this.code = 'ENETUNREACH' - this.message = `Nock: Disallowed net connect for "${host}${path}"` - - Error.captureStackTrace(this, this.constructor) -} - -inherits(NetConnectNotAllowedError, Error) - -let allInterceptors = {} -let allowNetConnect - -/** - * Enabled real request. - * @public - * @param {String|RegExp} matcher=RegExp.new('.*') Expression to match - * @example - * // Enables all real requests - * nock.enableNetConnect(); - * @example - * // Enables real requests for url that matches google - * nock.enableNetConnect('google'); - * @example - * // Enables real requests for url that matches google and amazon - * nock.enableNetConnect(/(google|amazon)/); - * @example - * // Enables real requests for url that includes google - * nock.enableNetConnect(host => host.includes('google')); - */ -function enableNetConnect(matcher) { - if (typeof matcher === 'string') { - allowNetConnect = new RegExp(matcher) - } else if (matcher instanceof RegExp) { - allowNetConnect = matcher - } else if (typeof matcher === 'function') { - allowNetConnect = { test: matcher } - } else { - allowNetConnect = /.*/ - } -} - -function isEnabledForNetConnect(options) { - common.normalizeRequestOptions(options) - - const enabled = allowNetConnect && allowNetConnect.test(options.host) - debug('Net connect', enabled ? '' : 'not', 'enabled for', options.host) - return enabled -} - -/** - * Disable all real requests. - * @public - * @example - * nock.disableNetConnect(); - */ -function disableNetConnect() { - allowNetConnect = undefined -} - -function isOn() { - return !isOff() -} - -function isOff() { - return process.env.NOCK_OFF === 'true' -} - -function addInterceptor(key, interceptor, scope, scopeOptions, host) { - if (!(key in allInterceptors)) { - allInterceptors[key] = { key, interceptors: [] } - } - interceptor.__nock_scope = scope - - // We need scope's key and scope options for scope filtering function (if defined) - interceptor.__nock_scopeKey = key - interceptor.__nock_scopeOptions = scopeOptions - // We need scope's host for setting correct request headers for filtered scopes. - interceptor.__nock_scopeHost = host - interceptor.interceptionCounter = 0 - - if (scopeOptions.allowUnmocked) allInterceptors[key].allowUnmocked = true - - allInterceptors[key].interceptors.push(interceptor) -} - -function remove(interceptor) { - if (interceptor.__nock_scope.shouldPersist() || --interceptor.counter > 0) { - return - } - - const { basePath } = interceptor - const interceptors = - (allInterceptors[basePath] && allInterceptors[basePath].interceptors) || [] - - // TODO: There is a clearer way to write that we want to delete the first - // matching instance. I'm also not sure why we couldn't delete _all_ - // matching instances. - interceptors.some(function (thisInterceptor, i) { - return thisInterceptor === interceptor ? interceptors.splice(i, 1) : false - }) -} - -function removeAll() { - Object.keys(allInterceptors).forEach(function (key) { - allInterceptors[key].interceptors.forEach(function (interceptor) { - interceptor.scope.keyedInterceptors = {} - }) - }) - allInterceptors = {} -} - -/** - * Return all the Interceptors whose Scopes match against the base path of the provided options. - * - * @returns {Interceptor[]} - */ -function interceptorsFor(options) { - common.normalizeRequestOptions(options) - - debug('interceptors for %j', options.host) - - const basePath = `${options.proto}://${options.host}` - - debug('filtering interceptors for basepath', basePath) - - // First try to use filteringScope if any of the interceptors has it defined. - for (const { key, interceptors, allowUnmocked } of Object.values( - allInterceptors, - )) { - for (const interceptor of interceptors) { - const { filteringScope } = interceptor.__nock_scopeOptions - - // If scope filtering function is defined and returns a truthy value then - // we have to treat this as a match. - if (filteringScope && filteringScope(basePath)) { - interceptor.scope.logger('found matching scope interceptor') - - // Keep the filtered scope (its key) to signal the rest of the module - // that this wasn't an exact but filtered match. - interceptors.forEach(ic => { - ic.__nock_filteredScope = ic.__nock_scopeKey - }) - return interceptors - } - } - - if (common.matchStringOrRegexp(basePath, key)) { - if (allowUnmocked && interceptors.length === 0) { - debug('matched base path with allowUnmocked (no matching interceptors)') - return [ - { - options: { allowUnmocked: true }, - matchOrigin() { - return false - }, - }, - ] - } else { - debug( - `matched base path (${interceptors.length} interceptor${ - interceptors.length > 1 ? 's' : '' - })`, - ) - return interceptors - } - } - } - - return undefined -} - -function removeInterceptor(options) { - // Lazily import to avoid circular imports. - const Interceptor = __nccwpck_require__(5419) - - let baseUrl, key, method, proto - if (options instanceof Interceptor) { - baseUrl = options.basePath - key = options._key - } else { - proto = options.proto ? options.proto : 'http' - - common.normalizeRequestOptions(options) - baseUrl = `${proto}://${options.host}` - method = (options.method && options.method.toUpperCase()) || 'GET' - key = `${method} ${baseUrl}${options.path || '/'}` - } - - if ( - allInterceptors[baseUrl] && - allInterceptors[baseUrl].interceptors.length > 0 - ) { - for (let i = 0; i < allInterceptors[baseUrl].interceptors.length; i++) { - const interceptor = allInterceptors[baseUrl].interceptors[i] - if ( - options instanceof Interceptor - ? interceptor === options - : interceptor._key === key - ) { - allInterceptors[baseUrl].interceptors.splice(i, 1) - interceptor.scope.remove(key, interceptor) - break - } - } - - return true - } - - return false -} -// Variable where we keep the ClientRequest we have overridden -// (which might or might not be node's original http.ClientRequest) -let originalClientRequest - -function ErroringClientRequest(error) { - http.OutgoingMessage.call(this) - process.nextTick( - function () { - this.emit('error', error) - }.bind(this), - ) -} - -inherits(ErroringClientRequest, http.ClientRequest) - -function overrideClientRequest() { - // Here's some background discussion about overriding ClientRequest: - // - https://github.com/nodejitsu/mock-request/issues/4 - // - https://github.com/nock/nock/issues/26 - // It would be good to add a comment that explains this more clearly. - debug('Overriding ClientRequest') - - // ----- Extending http.ClientRequest - - // Define the overriding client request that nock uses internally. - function OverriddenClientRequest(...args) { - const { options, callback } = common.normalizeClientRequestArgs(...args) - - if (Object.keys(options).length === 0) { - // As weird as it is, it's possible to call `http.request` without - // options, and it makes a request to localhost or somesuch. We should - // support it too, for parity. However it doesn't work today, and fixing - // it seems low priority. Giving an explicit error is nicer than - // crashing with a weird stack trace. `http[s].request()`, nock's other - // client-facing entry point, makes a similar check. - // https://github.com/nock/nock/pull/1386 - // https://github.com/nock/nock/pull/1440 - throw Error( - 'Creating a ClientRequest with empty `options` is not supported in Nock', - ) - } - - http.OutgoingMessage.call(this) - - // Filter the interceptors per request options. - const interceptors = interceptorsFor(options) - - if (isOn() && interceptors) { - debug('using', interceptors.length, 'interceptors') - - // Use filtered interceptors to intercept requests. - // TODO: this shouldn't be a class anymore - // the overrider explicitly overrides methods and attrs on the request so the `assign` below should be removed. - const overrider = new InterceptedRequestRouter({ - req: this, - options, - interceptors, - }) - Object.assign(this, overrider) - - if (callback) { - this.once('response', callback) - } - } else { - debug('falling back to original ClientRequest') - - // Fallback to original ClientRequest if nock is off or the net connection is enabled. - if (isOff() || isEnabledForNetConnect(options)) { - originalClientRequest.apply(this, arguments) - } else { - common.setImmediate( - function () { - const error = new NetConnectNotAllowedError( - options.host, - options.path, ) - this.emit('error', error) - }.bind(this), - ) + e(o[t]), ++t; + } + peek() { + const e = this._front, + t = this._cursor; + return e._elements[t]; + } + } + const R = t("[[AbortSteps]]"), + T = t("[[ErrorSteps]]"), + q = t("[[CancelSteps]]"), + C = t("[[PullSteps]]"), + P = t("[[ReleaseSteps]]"); + function E(e, t) { + (e._ownerReadableStream = t), + (t._reader = e), + "readable" === t._state + ? B(e) + : "closed" === t._state + ? (function (e) { + B(e), z(e); + })(e) + : A(e, t._storedError); + } + function W(e, t) { + return Xt(e._ownerReadableStream, t); + } + function O(e) { + const t = e._ownerReadableStream; + "readable" === t._state + ? j( + e, + new TypeError( + "Reader was released and can no longer be used to monitor the stream's closedness" + ) + ) + : (function (e, t) { + A(e, t); + })( + e, + new TypeError( + "Reader was released and can no longer be used to monitor the stream's closedness" + ) + ), + t._readableStreamController[P](), + (t._reader = void 0), + (e._ownerReadableStream = void 0); + } + function k(e) { + return new TypeError( + "Cannot " + e + " a stream using a released reader" + ); + } + function B(e) { + e._closedPromise = c((t, r) => { + (e._closedPromise_resolve = t), (e._closedPromise_reject = r); + }); + } + function A(e, t) { + B(e), j(e, t); + } + function j(e, t) { + void 0 !== e._closedPromise_reject && + (y(e._closedPromise), + e._closedPromise_reject(t), + (e._closedPromise_resolve = void 0), + (e._closedPromise_reject = void 0)); + } + function z(e) { + void 0 !== e._closedPromise_resolve && + (e._closedPromise_resolve(void 0), + (e._closedPromise_resolve = void 0), + (e._closedPromise_reject = void 0)); + } + const L = + Number.isFinite || + function (e) { + return "number" == typeof e && isFinite(e); + }, + F = + Math.trunc || + function (e) { + return e < 0 ? Math.ceil(e) : Math.floor(e); + }; + function D(e, t) { + if ( + void 0 !== e && + "object" != typeof (r = e) && + "function" != typeof r + ) + throw new TypeError(`${t} is not an object.`); + var r; + } + function I(e, t) { + if ("function" != typeof e) + throw new TypeError(`${t} is not a function.`); + } + function $(e, t) { + if ( + !(function (e) { + return ( + ("object" == typeof e && null !== e) || "function" == typeof e + ); + })(e) + ) + throw new TypeError(`${t} is not an object.`); + } + function M(e, t, r) { + if (void 0 === e) + throw new TypeError(`Parameter ${t} is required in '${r}'.`); + } + function Y(e, t, r) { + if (void 0 === e) throw new TypeError(`${t} is required in '${r}'.`); + } + function Q(e) { + return Number(e); + } + function N(e) { + return 0 === e ? 0 : e; + } + function x(e, t) { + const r = Number.MAX_SAFE_INTEGER; + let o = Number(e); + if (((o = N(o)), !L(o))) + throw new TypeError(`${t} is not a finite number`); + if ( + ((o = (function (e) { + return N(F(e)); + })(o)), + o < 0 || o > r) + ) + throw new TypeError( + `${t} is outside the accepted range of 0 to ${r}, inclusive` + ); + return L(o) && 0 !== o ? o : 0; + } + function H(e) { + if (!o(e)) return !1; + if ("function" != typeof e.getReader) return !1; + try { + return "boolean" == typeof e.locked; + } catch (e) { + return !1; + } + } + function V(e) { + if (!o(e)) return !1; + if ("function" != typeof e.getWriter) return !1; + try { + return "boolean" == typeof e.locked; + } catch (e) { + return !1; + } + } + function U(e, t) { + if (!Ut(e)) throw new TypeError(`${t} is not a ReadableStream.`); + } + function G(e, t) { + e._reader._readRequests.push(t); + } + function X(e, t, r) { + const o = e._reader._readRequests.shift(); + r ? o._closeSteps() : o._chunkSteps(t); + } + function J(e) { + return e._reader._readRequests.length; + } + function K(e) { + const t = e._reader; + return void 0 !== t && !!Z(t); + } + class ReadableStreamDefaultReader { + constructor(e) { + if ( + (M(e, 1, "ReadableStreamDefaultReader"), + U(e, "First parameter"), + Gt(e)) + ) + throw new TypeError( + "This stream has already been locked for exclusive reading by another reader" + ); + E(this, e), (this._readRequests = new v()); + } + get closed() { + return Z(this) ? this._closedPromise : f(te("closed")); + } + cancel(e) { + return Z(this) + ? void 0 === this._ownerReadableStream + ? f(k("cancel")) + : W(this, e) + : f(te("cancel")); + } + read() { + if (!Z(this)) return f(te("read")); + if (void 0 === this._ownerReadableStream) return f(k("read from")); + let e, t; + const r = c((r, o) => { + (e = r), (t = o); + }); + return ( + (function (e, t) { + const r = e._ownerReadableStream; + (r._disturbed = !0), + "closed" === r._state + ? t._closeSteps() + : "errored" === r._state + ? t._errorSteps(r._storedError) + : r._readableStreamController[C](t); + })(this, { + _chunkSteps: (t) => e({ value: t, done: !1 }), + _closeSteps: () => e({ value: void 0, done: !0 }), + _errorSteps: (e) => t(e), + }), + r + ); + } + releaseLock() { + if (!Z(this)) throw te("releaseLock"); + void 0 !== this._ownerReadableStream && + (function (e) { + O(e); + const t = new TypeError("Reader was released"); + ee(e, t); + })(this); + } + } + function Z(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call(e, "_readRequests") && + e instanceof ReadableStreamDefaultReader + ); + } + function ee(e, t) { + const r = e._readRequests; + (e._readRequests = new v()), + r.forEach((e) => { + e._errorSteps(t); + }); + } + function te(e) { + return new TypeError( + `ReadableStreamDefaultReader.prototype.${e} can only be used on a ReadableStreamDefaultReader` + ); + } + Object.defineProperties(ReadableStreamDefaultReader.prototype, { + cancel: { enumerable: !0 }, + read: { enumerable: !0 }, + releaseLock: { enumerable: !0 }, + closed: { enumerable: !0 }, + }), + a(ReadableStreamDefaultReader.prototype.cancel, "cancel"), + a(ReadableStreamDefaultReader.prototype.read, "read"), + a(ReadableStreamDefaultReader.prototype.releaseLock, "releaseLock"), + "symbol" == typeof t.toStringTag && + Object.defineProperty( + ReadableStreamDefaultReader.prototype, + t.toStringTag, + { value: "ReadableStreamDefaultReader", configurable: !0 } + ); + class re { + constructor(e, t) { + (this._ongoingPromise = void 0), + (this._isFinished = !1), + (this._reader = e), + (this._preventCancel = t); + } + next() { + const e = () => this._nextSteps(); + return ( + (this._ongoingPromise = this._ongoingPromise + ? m(this._ongoingPromise, e, e) + : e()), + this._ongoingPromise + ); + } + return(e) { + const t = () => this._returnSteps(e); + return this._ongoingPromise ? m(this._ongoingPromise, t, t) : t(); + } + _nextSteps() { + if (this._isFinished) + return Promise.resolve({ value: void 0, done: !0 }); + const e = this._reader; + return void 0 === e + ? f(k("iterate")) + : b( + e.read(), + (e) => { + var t; + return ( + (this._ongoingPromise = void 0), + e.done && + ((this._isFinished = !0), + null === (t = this._reader) || + void 0 === t || + t.releaseLock(), + (this._reader = void 0)), + e + ); + }, + (e) => { + var t; + throw ( + ((this._ongoingPromise = void 0), + (this._isFinished = !0), + null === (t = this._reader) || + void 0 === t || + t.releaseLock(), + (this._reader = void 0), + e) + ); + } + ); + } + _returnSteps(e) { + if (this._isFinished) + return Promise.resolve({ value: e, done: !0 }); + this._isFinished = !0; + const t = this._reader; + if (void 0 === t) return f(k("finish iterating")); + if (((this._reader = void 0), !this._preventCancel)) { + const r = t.cancel(e); + return t.releaseLock(), m(r, () => ({ value: e, done: !0 })); + } + return t.releaseLock(), d({ value: e, done: !0 }); + } + } + const oe = { + next() { + return ne(this) ? this._asyncIteratorImpl.next() : f(ae("next")); + }, + return(e) { + return ne(this) + ? this._asyncIteratorImpl.return(e) + : f(ae("return")); + }, + }; + function ne(e) { + if (!o(e)) return !1; + if (!Object.prototype.hasOwnProperty.call(e, "_asyncIteratorImpl")) + return !1; + try { + return e._asyncIteratorImpl instanceof re; + } catch (e) { + return !1; + } + } + function ae(e) { + return new TypeError( + `ReadableStreamAsyncIterator.${e} can only be used on a ReadableSteamAsyncIterator` + ); + } + "symbol" == typeof t.asyncIterator && + Object.defineProperty(oe, t.asyncIterator, { + value() { + return this; + }, + writable: !0, + configurable: !0, + }); + const ie = + Number.isNaN || + function (e) { + return e != e; + }; + function le(e, t, r, o, n) { + new Uint8Array(e).set(new Uint8Array(r, o, n), t); + } + function se(e) { + const t = (function (e, t, r) { + if (e.slice) return e.slice(t, r); + const o = r - t, + n = new ArrayBuffer(o); + return le(n, 0, e, t, o), n; + })(e.buffer, e.byteOffset, e.byteOffset + e.byteLength); + return new Uint8Array(t); + } + function ue(e) { + const t = e._queue.shift(); + return ( + (e._queueTotalSize -= t.size), + e._queueTotalSize < 0 && (e._queueTotalSize = 0), + t.value + ); + } + function ce(e, t, r) { + if ("number" != typeof (o = r) || ie(o) || o < 0 || r === 1 / 0) + throw new RangeError( + "Size must be a finite, non-NaN, non-negative number." + ); + var o; + e._queue.push({ value: t, size: r }), (e._queueTotalSize += r); + } + function de(e) { + (e._queue = new v()), (e._queueTotalSize = 0); + } + class ReadableStreamBYOBRequest { + constructor() { + throw new TypeError("Illegal constructor"); + } + get view() { + if (!be(this)) throw Ae("view"); + return this._view; + } + respond(e) { + if (!be(this)) throw Ae("respond"); + if ( + (M(e, 1, "respond"), + (e = x(e, "First parameter")), + void 0 === this._associatedReadableByteStreamController) + ) + throw new TypeError("This BYOB request has been invalidated"); + this._view.buffer, + (function (e, t) { + const r = e._pendingPullIntos.peek(); + if ("closed" === e._controlledReadableByteStream._state) { + if (0 !== t) + throw new TypeError( + "bytesWritten must be 0 when calling respond() on a closed stream" + ); + } else { + if (0 === t) + throw new TypeError( + "bytesWritten must be greater than 0 when calling respond() on a readable stream" + ); + if (r.bytesFilled + t > r.byteLength) + throw new RangeError("bytesWritten out of range"); + } + (r.buffer = r.buffer), Ce(e, t); + })(this._associatedReadableByteStreamController, e); + } + respondWithNewView(e) { + if (!be(this)) throw Ae("respondWithNewView"); + if ((M(e, 1, "respondWithNewView"), !ArrayBuffer.isView(e))) + throw new TypeError( + "You can only respond with array buffer views" + ); + if (void 0 === this._associatedReadableByteStreamController) + throw new TypeError("This BYOB request has been invalidated"); + e.buffer, + (function (e, t) { + const r = e._pendingPullIntos.peek(); + if ("closed" === e._controlledReadableByteStream._state) { + if (0 !== t.byteLength) + throw new TypeError( + "The view's length must be 0 when calling respondWithNewView() on a closed stream" + ); + } else if (0 === t.byteLength) + throw new TypeError( + "The view's length must be greater than 0 when calling respondWithNewView() on a readable stream" + ); + if (r.byteOffset + r.bytesFilled !== t.byteOffset) + throw new RangeError( + "The region specified by view does not match byobRequest" + ); + if (r.bufferByteLength !== t.buffer.byteLength) + throw new RangeError( + "The buffer of view has different capacity than byobRequest" + ); + if (r.bytesFilled + t.byteLength > r.byteLength) + throw new RangeError( + "The region specified by view is larger than byobRequest" + ); + const o = t.byteLength; + (r.buffer = t.buffer), Ce(e, o); + })(this._associatedReadableByteStreamController, e); + } + } + Object.defineProperties(ReadableStreamBYOBRequest.prototype, { + respond: { enumerable: !0 }, + respondWithNewView: { enumerable: !0 }, + view: { enumerable: !0 }, + }), + a(ReadableStreamBYOBRequest.prototype.respond, "respond"), + a( + ReadableStreamBYOBRequest.prototype.respondWithNewView, + "respondWithNewView" + ), + "symbol" == typeof t.toStringTag && + Object.defineProperty( + ReadableStreamBYOBRequest.prototype, + t.toStringTag, + { value: "ReadableStreamBYOBRequest", configurable: !0 } + ); + class ReadableByteStreamController { + constructor() { + throw new TypeError("Illegal constructor"); + } + get byobRequest() { + if (!fe(this)) throw je("byobRequest"); + return (function (e) { + if (null === e._byobRequest && e._pendingPullIntos.length > 0) { + const t = e._pendingPullIntos.peek(), + r = new Uint8Array( + t.buffer, + t.byteOffset + t.bytesFilled, + t.byteLength - t.bytesFilled + ), + o = Object.create(ReadableStreamBYOBRequest.prototype); + !(function (e, t, r) { + (e._associatedReadableByteStreamController = t), + (e._view = r); + })(o, e, r), + (e._byobRequest = o); + } + return e._byobRequest; + })(this); + } + get desiredSize() { + if (!fe(this)) throw je("desiredSize"); + return ke(this); + } + close() { + if (!fe(this)) throw je("close"); + if (this._closeRequested) + throw new TypeError( + "The stream has already been closed; do not close it again!" + ); + const e = this._controlledReadableByteStream._state; + if ("readable" !== e) + throw new TypeError( + `The stream (in ${e} state) is not in the readable state and cannot be closed` + ); + !(function (e) { + const t = e._controlledReadableByteStream; + if (e._closeRequested || "readable" !== t._state) return; + if (e._queueTotalSize > 0) return void (e._closeRequested = !0); + if (e._pendingPullIntos.length > 0) { + if (e._pendingPullIntos.peek().bytesFilled > 0) { + const t = new TypeError( + "Insufficient bytes to fill elements in the given buffer" + ); + throw (We(e, t), t); + } + } + Ee(e), Jt(t); + })(this); + } + enqueue(e) { + if (!fe(this)) throw je("enqueue"); + if ((M(e, 1, "enqueue"), !ArrayBuffer.isView(e))) + throw new TypeError("chunk must be an array buffer view"); + if (0 === e.byteLength) + throw new TypeError("chunk must have non-zero byteLength"); + if (0 === e.buffer.byteLength) + throw new TypeError( + "chunk's buffer must have non-zero byteLength" + ); + if (this._closeRequested) + throw new TypeError("stream is closed or draining"); + const t = this._controlledReadableByteStream._state; + if ("readable" !== t) + throw new TypeError( + `The stream (in ${t} state) is not in the readable state and cannot be enqueued to` + ); + !(function (e, t) { + const r = e._controlledReadableByteStream; + if (e._closeRequested || "readable" !== r._state) return; + const o = t.buffer, + n = t.byteOffset, + a = t.byteLength, + i = o; + if (e._pendingPullIntos.length > 0) { + const t = e._pendingPullIntos.peek(); + t.buffer, + 0, + Te(e), + (t.buffer = t.buffer), + "none" === t.readerType && Se(e, t); + } + if (K(r)) + if ( + ((function (e) { + const t = e._controlledReadableByteStream._reader; + for (; t._readRequests.length > 0; ) { + if (0 === e._queueTotalSize) return; + Oe(e, t._readRequests.shift()); + } + })(e), + 0 === J(r)) + ) + ye(e, i, n, a); + else { + e._pendingPullIntos.length > 0 && Pe(e); + X(r, new Uint8Array(i, n, a), !1); + } + else Fe(r) ? (ye(e, i, n, a), qe(e)) : ye(e, i, n, a); + he(e); + })(this, e); + } + error(e) { + if (!fe(this)) throw je("error"); + We(this, e); + } + [q](e) { + _e(this), de(this); + const t = this._cancelAlgorithm(e); + return Ee(this), t; + } + [C](e) { + const t = this._controlledReadableByteStream; + if (this._queueTotalSize > 0) return void Oe(this, e); + const r = this._autoAllocateChunkSize; + if (void 0 !== r) { + let t; + try { + t = new ArrayBuffer(r); + } catch (t) { + return void e._errorSteps(t); + } + const o = { + buffer: t, + bufferByteLength: r, + byteOffset: 0, + byteLength: r, + bytesFilled: 0, + elementSize: 1, + viewConstructor: Uint8Array, + readerType: "default", + }; + this._pendingPullIntos.push(o); + } + G(t, e), he(this); + } + [P]() { + if (this._pendingPullIntos.length > 0) { + const e = this._pendingPullIntos.peek(); + (e.readerType = "none"), + (this._pendingPullIntos = new v()), + this._pendingPullIntos.push(e); + } + } + } + function fe(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call( + e, + "_controlledReadableByteStream" + ) && + e instanceof ReadableByteStreamController + ); + } + function be(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call( + e, + "_associatedReadableByteStreamController" + ) && + e instanceof ReadableStreamBYOBRequest + ); + } + function he(e) { + const t = (function (e) { + const t = e._controlledReadableByteStream; + if ("readable" !== t._state) return !1; + if (e._closeRequested) return !1; + if (!e._started) return !1; + if (K(t) && J(t) > 0) return !0; + if (Fe(t) && Le(t) > 0) return !0; + if (ke(e) > 0) return !0; + return !1; + })(e); + if (!t) return; + if (e._pulling) return void (e._pullAgain = !0); + e._pulling = !0; + h( + e._pullAlgorithm(), + () => ( + (e._pulling = !1), + e._pullAgain && ((e._pullAgain = !1), he(e)), + null + ), + (t) => (We(e, t), null) + ); + } + function _e(e) { + Te(e), (e._pendingPullIntos = new v()); + } + function pe(e, t) { + let r = !1; + "closed" === e._state && (r = !0); + const o = me(t); + "default" === t.readerType + ? X(e, o, r) + : (function (e, t, r) { + const o = e._reader._readIntoRequests.shift(); + r ? o._closeSteps(t) : o._chunkSteps(t); + })(e, o, r); + } + function me(e) { + const t = e.bytesFilled, + r = e.elementSize; + return new e.viewConstructor(e.buffer, e.byteOffset, t / r); + } + function ye(e, t, r, o) { + e._queue.push({ buffer: t, byteOffset: r, byteLength: o }), + (e._queueTotalSize += o); + } + function ge(e, t, r, o) { + let n; + try { + n = t.slice(r, r + o); + } catch (t) { + throw (We(e, t), t); + } + ye(e, n, 0, o); + } + function Se(e, t) { + t.bytesFilled > 0 && ge(e, t.buffer, t.byteOffset, t.bytesFilled), + Pe(e); + } + function we(e, t) { + const r = t.elementSize, + o = t.bytesFilled - (t.bytesFilled % r), + n = Math.min(e._queueTotalSize, t.byteLength - t.bytesFilled), + a = t.bytesFilled + n, + i = a - (a % r); + let l = n, + s = !1; + i > o && ((l = i - t.bytesFilled), (s = !0)); + const u = e._queue; + for (; l > 0; ) { + const r = u.peek(), + o = Math.min(l, r.byteLength), + n = t.byteOffset + t.bytesFilled; + le(t.buffer, n, r.buffer, r.byteOffset, o), + r.byteLength === o + ? u.shift() + : ((r.byteOffset += o), (r.byteLength -= o)), + (e._queueTotalSize -= o), + ve(e, o, t), + (l -= o); + } + return s; + } + function ve(e, t, r) { + r.bytesFilled += t; + } + function Re(e) { + 0 === e._queueTotalSize && e._closeRequested + ? (Ee(e), Jt(e._controlledReadableByteStream)) + : he(e); + } + function Te(e) { + null !== e._byobRequest && + ((e._byobRequest._associatedReadableByteStreamController = void 0), + (e._byobRequest._view = null), + (e._byobRequest = null)); + } + function qe(e) { + for (; e._pendingPullIntos.length > 0; ) { + if (0 === e._queueTotalSize) return; + const t = e._pendingPullIntos.peek(); + we(e, t) && (Pe(e), pe(e._controlledReadableByteStream, t)); + } + } + function Ce(e, t) { + const r = e._pendingPullIntos.peek(); + Te(e); + "closed" === e._controlledReadableByteStream._state + ? (function (e, t) { + "none" === t.readerType && Pe(e); + const r = e._controlledReadableByteStream; + if (Fe(r)) for (; Le(r) > 0; ) pe(r, Pe(e)); + })(e, r) + : (function (e, t, r) { + if ((ve(0, t, r), "none" === r.readerType)) + return Se(e, r), void qe(e); + if (r.bytesFilled < r.elementSize) return; + Pe(e); + const o = r.bytesFilled % r.elementSize; + if (o > 0) { + const t = r.byteOffset + r.bytesFilled; + ge(e, r.buffer, t - o, o); + } + (r.bytesFilled -= o), + pe(e._controlledReadableByteStream, r), + qe(e); + })(e, t, r), + he(e); + } + function Pe(e) { + return e._pendingPullIntos.shift(); + } + function Ee(e) { + (e._pullAlgorithm = void 0), (e._cancelAlgorithm = void 0); + } + function We(e, t) { + const r = e._controlledReadableByteStream; + "readable" === r._state && (_e(e), de(e), Ee(e), Kt(r, t)); + } + function Oe(e, t) { + const r = e._queue.shift(); + (e._queueTotalSize -= r.byteLength), Re(e); + const o = new Uint8Array(r.buffer, r.byteOffset, r.byteLength); + t._chunkSteps(o); + } + function ke(e) { + const t = e._controlledReadableByteStream._state; + return "errored" === t + ? null + : "closed" === t + ? 0 + : e._strategyHWM - e._queueTotalSize; + } + function Be(e, t, r) { + const o = Object.create(ReadableByteStreamController.prototype); + let n, a, i; + (n = void 0 !== t.start ? () => t.start(o) : () => {}), + (a = void 0 !== t.pull ? () => t.pull(o) : () => d(void 0)), + (i = void 0 !== t.cancel ? (e) => t.cancel(e) : () => d(void 0)); + const l = t.autoAllocateChunkSize; + if (0 === l) + throw new TypeError("autoAllocateChunkSize must be greater than 0"); + !(function (e, t, r, o, n, a, i) { + (t._controlledReadableByteStream = e), + (t._pullAgain = !1), + (t._pulling = !1), + (t._byobRequest = null), + (t._queue = t._queueTotalSize = void 0), + de(t), + (t._closeRequested = !1), + (t._started = !1), + (t._strategyHWM = a), + (t._pullAlgorithm = o), + (t._cancelAlgorithm = n), + (t._autoAllocateChunkSize = i), + (t._pendingPullIntos = new v()), + (e._readableStreamController = t), + h( + d(r()), + () => ((t._started = !0), he(t), null), + (e) => (We(t, e), null) + ); + })(e, o, n, a, i, r, l); + } + function Ae(e) { + return new TypeError( + `ReadableStreamBYOBRequest.prototype.${e} can only be used on a ReadableStreamBYOBRequest` + ); + } + function je(e) { + return new TypeError( + `ReadableByteStreamController.prototype.${e} can only be used on a ReadableByteStreamController` + ); + } + function ze(e, t) { + e._reader._readIntoRequests.push(t); + } + function Le(e) { + return e._reader._readIntoRequests.length; + } + function Fe(e) { + const t = e._reader; + return void 0 !== t && !!De(t); + } + Object.defineProperties(ReadableByteStreamController.prototype, { + close: { enumerable: !0 }, + enqueue: { enumerable: !0 }, + error: { enumerable: !0 }, + byobRequest: { enumerable: !0 }, + desiredSize: { enumerable: !0 }, + }), + a(ReadableByteStreamController.prototype.close, "close"), + a(ReadableByteStreamController.prototype.enqueue, "enqueue"), + a(ReadableByteStreamController.prototype.error, "error"), + "symbol" == typeof t.toStringTag && + Object.defineProperty( + ReadableByteStreamController.prototype, + t.toStringTag, + { value: "ReadableByteStreamController", configurable: !0 } + ); + class ReadableStreamBYOBReader { + constructor(e) { + if ( + (M(e, 1, "ReadableStreamBYOBReader"), + U(e, "First parameter"), + Gt(e)) + ) + throw new TypeError( + "This stream has already been locked for exclusive reading by another reader" + ); + if (!fe(e._readableStreamController)) + throw new TypeError( + "Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte source" + ); + E(this, e), (this._readIntoRequests = new v()); + } + get closed() { + return De(this) ? this._closedPromise : f($e("closed")); + } + cancel(e) { + return De(this) + ? void 0 === this._ownerReadableStream + ? f(k("cancel")) + : W(this, e) + : f($e("cancel")); + } + read(e) { + if (!De(this)) return f($e("read")); + if (!ArrayBuffer.isView(e)) + return f(new TypeError("view must be an array buffer view")); + if (0 === e.byteLength) + return f(new TypeError("view must have non-zero byteLength")); + if (0 === e.buffer.byteLength) + return f( + new TypeError("view's buffer must have non-zero byteLength") + ); + if ((e.buffer, void 0 === this._ownerReadableStream)) + return f(k("read from")); + let t, r; + const o = c((e, o) => { + (t = e), (r = o); + }); + return ( + (function (e, t, r) { + const o = e._ownerReadableStream; + (o._disturbed = !0), + "errored" === o._state + ? r._errorSteps(o._storedError) + : (function (e, t, r) { + const o = e._controlledReadableByteStream; + let n = 1; + t.constructor !== DataView && + (n = t.constructor.BYTES_PER_ELEMENT); + const a = t.constructor, + i = t.buffer, + l = { + buffer: i, + bufferByteLength: i.byteLength, + byteOffset: t.byteOffset, + byteLength: t.byteLength, + bytesFilled: 0, + elementSize: n, + viewConstructor: a, + readerType: "byob", + }; + if (e._pendingPullIntos.length > 0) + return e._pendingPullIntos.push(l), void ze(o, r); + if ("closed" !== o._state) { + if (e._queueTotalSize > 0) { + if (we(e, l)) { + const t = me(l); + return Re(e), void r._chunkSteps(t); + } + if (e._closeRequested) { + const t = new TypeError( + "Insufficient bytes to fill elements in the given buffer" + ); + return We(e, t), void r._errorSteps(t); + } + } + e._pendingPullIntos.push(l), ze(o, r), he(e); + } else { + const e = new a(l.buffer, l.byteOffset, 0); + r._closeSteps(e); + } + })(o._readableStreamController, t, r); + })(this, e, { + _chunkSteps: (e) => t({ value: e, done: !1 }), + _closeSteps: (e) => t({ value: e, done: !0 }), + _errorSteps: (e) => r(e), + }), + o + ); + } + releaseLock() { + if (!De(this)) throw $e("releaseLock"); + void 0 !== this._ownerReadableStream && + (function (e) { + O(e); + const t = new TypeError("Reader was released"); + Ie(e, t); + })(this); + } + } + function De(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call(e, "_readIntoRequests") && + e instanceof ReadableStreamBYOBReader + ); + } + function Ie(e, t) { + const r = e._readIntoRequests; + (e._readIntoRequests = new v()), + r.forEach((e) => { + e._errorSteps(t); + }); + } + function $e(e) { + return new TypeError( + `ReadableStreamBYOBReader.prototype.${e} can only be used on a ReadableStreamBYOBReader` + ); + } + function Me(e, t) { + const { highWaterMark: r } = e; + if (void 0 === r) return t; + if (ie(r) || r < 0) throw new RangeError("Invalid highWaterMark"); + return r; + } + function Ye(e) { + const { size: t } = e; + return t || (() => 1); + } + function Qe(e, t) { + D(e, t); + const r = null == e ? void 0 : e.highWaterMark, + o = null == e ? void 0 : e.size; + return { + highWaterMark: void 0 === r ? void 0 : Q(r), + size: void 0 === o ? void 0 : Ne(o, `${t} has member 'size' that`), + }; + } + function Ne(e, t) { + return I(e, t), (t) => Q(e(t)); + } + function xe(e, t, r) { + return I(e, r), (r) => w(e, t, [r]); + } + function He(e, t, r) { + return I(e, r), () => w(e, t, []); + } + function Ve(e, t, r) { + return I(e, r), (r) => S(e, t, [r]); + } + function Ue(e, t, r) { + return I(e, r), (r, o) => w(e, t, [r, o]); + } + Object.defineProperties(ReadableStreamBYOBReader.prototype, { + cancel: { enumerable: !0 }, + read: { enumerable: !0 }, + releaseLock: { enumerable: !0 }, + closed: { enumerable: !0 }, + }), + a(ReadableStreamBYOBReader.prototype.cancel, "cancel"), + a(ReadableStreamBYOBReader.prototype.read, "read"), + a(ReadableStreamBYOBReader.prototype.releaseLock, "releaseLock"), + "symbol" == typeof t.toStringTag && + Object.defineProperty( + ReadableStreamBYOBReader.prototype, + t.toStringTag, + { value: "ReadableStreamBYOBReader", configurable: !0 } + ); + const Ge = "function" == typeof AbortController; + class WritableStream { + constructor(e = {}, t = {}) { + void 0 === e ? (e = null) : $(e, "First parameter"); + const r = Qe(t, "Second parameter"), + o = (function (e, t) { + D(e, t); + const r = null == e ? void 0 : e.abort, + o = null == e ? void 0 : e.close, + n = null == e ? void 0 : e.start, + a = null == e ? void 0 : e.type, + i = null == e ? void 0 : e.write; + return { + abort: + void 0 === r + ? void 0 + : xe(r, e, `${t} has member 'abort' that`), + close: + void 0 === o + ? void 0 + : He(o, e, `${t} has member 'close' that`), + start: + void 0 === n + ? void 0 + : Ve(n, e, `${t} has member 'start' that`), + write: + void 0 === i + ? void 0 + : Ue(i, e, `${t} has member 'write' that`), + type: a, + }; + })(e, "First parameter"); + var n; + ((n = this)._state = "writable"), + (n._storedError = void 0), + (n._writer = void 0), + (n._writableStreamController = void 0), + (n._writeRequests = new v()), + (n._inFlightWriteRequest = void 0), + (n._closeRequest = void 0), + (n._inFlightCloseRequest = void 0), + (n._pendingAbortRequest = void 0), + (n._backpressure = !1); + if (void 0 !== o.type) + throw new RangeError("Invalid type is specified"); + const a = Ye(r); + !(function (e, t, r, o) { + const n = Object.create( + WritableStreamDefaultController.prototype + ); + let a, i, l, s; + a = void 0 !== t.start ? () => t.start(n) : () => {}; + i = void 0 !== t.write ? (e) => t.write(e, n) : () => d(void 0); + l = void 0 !== t.close ? () => t.close() : () => d(void 0); + s = void 0 !== t.abort ? (e) => t.abort(e) : () => d(void 0); + !(function (e, t, r, o, n, a, i, l) { + (t._controlledWritableStream = e), + (e._writableStreamController = t), + (t._queue = void 0), + (t._queueTotalSize = void 0), + de(t), + (t._abortReason = void 0), + (t._abortController = (function () { + if (Ge) return new AbortController(); + })()), + (t._started = !1), + (t._strategySizeAlgorithm = l), + (t._strategyHWM = i), + (t._writeAlgorithm = o), + (t._closeAlgorithm = n), + (t._abortAlgorithm = a); + const s = ht(t); + at(e, s); + const u = r(); + h( + d(u), + () => ((t._started = !0), ft(t), null), + (r) => ((t._started = !0), et(e, r), null) + ); + })(e, n, a, i, l, s, r, o); + })(this, o, Me(r, 1), a); + } + get locked() { + if (!Xe(this)) throw pt("locked"); + return Je(this); + } + abort(e) { + return Xe(this) + ? Je(this) + ? f( + new TypeError( + "Cannot abort a stream that already has a writer" + ) + ) + : Ke(this, e) + : f(pt("abort")); + } + close() { + return Xe(this) + ? Je(this) + ? f( + new TypeError( + "Cannot close a stream that already has a writer" + ) + ) + : ot(this) + ? f(new TypeError("Cannot close an already-closing stream")) + : Ze(this) + : f(pt("close")); + } + getWriter() { + if (!Xe(this)) throw pt("getWriter"); + return new WritableStreamDefaultWriter(this); + } + } + function Xe(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call( + e, + "_writableStreamController" + ) && + e instanceof WritableStream + ); + } + function Je(e) { + return void 0 !== e._writer; + } + function Ke(e, t) { + var r; + if ("closed" === e._state || "errored" === e._state) return d(void 0); + (e._writableStreamController._abortReason = t), + null === (r = e._writableStreamController._abortController) || + void 0 === r || + r.abort(t); + const o = e._state; + if ("closed" === o || "errored" === o) return d(void 0); + if (void 0 !== e._pendingAbortRequest) + return e._pendingAbortRequest._promise; + let n = !1; + "erroring" === o && ((n = !0), (t = void 0)); + const a = c((r, o) => { + e._pendingAbortRequest = { + _promise: void 0, + _resolve: r, + _reject: o, + _reason: t, + _wasAlreadyErroring: n, + }; + }); + return (e._pendingAbortRequest._promise = a), n || tt(e, t), a; + } + function Ze(e) { + const t = e._state; + if ("closed" === t || "errored" === t) + return f( + new TypeError( + `The stream (in ${t} state) is not in the writable state and cannot be closed` + ) + ); + const r = c((t, r) => { + const o = { _resolve: t, _reject: r }; + e._closeRequest = o; + }), + o = e._writer; + var n; + return ( + void 0 !== o && e._backpressure && "writable" === t && Et(o), + ce((n = e._writableStreamController), st, 0), + ft(n), + r + ); + } + function et(e, t) { + "writable" !== e._state ? rt(e) : tt(e, t); + } + function tt(e, t) { + const r = e._writableStreamController; + (e._state = "erroring"), (e._storedError = t); + const o = e._writer; + void 0 !== o && lt(o, t), + !(function (e) { + if ( + void 0 === e._inFlightWriteRequest && + void 0 === e._inFlightCloseRequest + ) + return !1; + return !0; + })(e) && + r._started && + rt(e); + } + function rt(e) { + (e._state = "errored"), e._writableStreamController[T](); + const t = e._storedError; + if ( + (e._writeRequests.forEach((e) => { + e._reject(t); + }), + (e._writeRequests = new v()), + void 0 === e._pendingAbortRequest) + ) + return void nt(e); + const r = e._pendingAbortRequest; + if (((e._pendingAbortRequest = void 0), r._wasAlreadyErroring)) + return r._reject(t), void nt(e); + h( + e._writableStreamController[R](r._reason), + () => (r._resolve(), nt(e), null), + (t) => (r._reject(t), nt(e), null) + ); + } + function ot(e) { + return ( + void 0 !== e._closeRequest || void 0 !== e._inFlightCloseRequest + ); + } + function nt(e) { + void 0 !== e._closeRequest && + (e._closeRequest._reject(e._storedError), + (e._closeRequest = void 0)); + const t = e._writer; + void 0 !== t && vt(t, e._storedError); + } + function at(e, t) { + const r = e._writer; + void 0 !== r && + t !== e._backpressure && + (t + ? (function (e) { + Tt(e); + })(r) + : Et(r)), + (e._backpressure = t); + } + Object.defineProperties(WritableStream.prototype, { + abort: { enumerable: !0 }, + close: { enumerable: !0 }, + getWriter: { enumerable: !0 }, + locked: { enumerable: !0 }, + }), + a(WritableStream.prototype.abort, "abort"), + a(WritableStream.prototype.close, "close"), + a(WritableStream.prototype.getWriter, "getWriter"), + "symbol" == typeof t.toStringTag && + Object.defineProperty(WritableStream.prototype, t.toStringTag, { + value: "WritableStream", + configurable: !0, + }); + class WritableStreamDefaultWriter { + constructor(e) { + if ( + (M(e, 1, "WritableStreamDefaultWriter"), + (function (e, t) { + if (!Xe(e)) + throw new TypeError(`${t} is not a WritableStream.`); + })(e, "First parameter"), + Je(e)) + ) + throw new TypeError( + "This stream has already been locked for exclusive writing by another writer" + ); + (this._ownerWritableStream = e), (e._writer = this); + const t = e._state; + if ("writable" === t) + !ot(e) && e._backpressure ? Tt(this) : Ct(this), St(this); + else if ("erroring" === t) qt(this, e._storedError), St(this); + else if ("closed" === t) Ct(this), St((r = this)), Rt(r); + else { + const t = e._storedError; + qt(this, t), wt(this, t); + } + var r; + } + get closed() { + return it(this) ? this._closedPromise : f(yt("closed")); + } + get desiredSize() { + if (!it(this)) throw yt("desiredSize"); + if (void 0 === this._ownerWritableStream) throw gt("desiredSize"); + return (function (e) { + const t = e._ownerWritableStream, + r = t._state; + if ("errored" === r || "erroring" === r) return null; + if ("closed" === r) return 0; + return dt(t._writableStreamController); + })(this); + } + get ready() { + return it(this) ? this._readyPromise : f(yt("ready")); + } + abort(e) { + return it(this) + ? void 0 === this._ownerWritableStream + ? f(gt("abort")) + : (function (e, t) { + return Ke(e._ownerWritableStream, t); + })(this, e) + : f(yt("abort")); + } + close() { + if (!it(this)) return f(yt("close")); + const e = this._ownerWritableStream; + return void 0 === e + ? f(gt("close")) + : ot(e) + ? f(new TypeError("Cannot close an already-closing stream")) + : Ze(this._ownerWritableStream); + } + releaseLock() { + if (!it(this)) throw yt("releaseLock"); + void 0 !== this._ownerWritableStream && + (function (e) { + const t = e._ownerWritableStream, + r = new TypeError( + "Writer was released and can no longer be used to monitor the stream's closedness" + ); + lt(e, r), + (function (e, t) { + "pending" === e._closedPromiseState + ? vt(e, t) + : (function (e, t) { + wt(e, t); + })(e, t); + })(e, r), + (t._writer = void 0), + (e._ownerWritableStream = void 0); + })(this); + } + write(e) { + return it(this) + ? void 0 === this._ownerWritableStream + ? f(gt("write to")) + : (function (e, t) { + const r = e._ownerWritableStream, + o = r._writableStreamController, + n = (function (e, t) { + try { + return e._strategySizeAlgorithm(t); + } catch (t) { + return bt(e, t), 1; + } + })(o, t); + if (r !== e._ownerWritableStream) return f(gt("write to")); + const a = r._state; + if ("errored" === a) return f(r._storedError); + if (ot(r) || "closed" === a) + return f( + new TypeError( + "The stream is closing or closed and cannot be written to" + ) + ); + if ("erroring" === a) return f(r._storedError); + const i = (function (e) { + return c((t, r) => { + const o = { _resolve: t, _reject: r }; + e._writeRequests.push(o); + }); + })(r); + return ( + (function (e, t, r) { + try { + ce(e, t, r); + } catch (t) { + return void bt(e, t); + } + const o = e._controlledWritableStream; + if (!ot(o) && "writable" === o._state) { + at(o, ht(e)); + } + ft(e); + })(o, t, n), + i + ); + })(this, e) + : f(yt("write")); + } + } + function it(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call(e, "_ownerWritableStream") && + e instanceof WritableStreamDefaultWriter + ); + } + function lt(e, t) { + "pending" === e._readyPromiseState + ? Pt(e, t) + : (function (e, t) { + qt(e, t); + })(e, t); + } + Object.defineProperties(WritableStreamDefaultWriter.prototype, { + abort: { enumerable: !0 }, + close: { enumerable: !0 }, + releaseLock: { enumerable: !0 }, + write: { enumerable: !0 }, + closed: { enumerable: !0 }, + desiredSize: { enumerable: !0 }, + ready: { enumerable: !0 }, + }), + a(WritableStreamDefaultWriter.prototype.abort, "abort"), + a(WritableStreamDefaultWriter.prototype.close, "close"), + a(WritableStreamDefaultWriter.prototype.releaseLock, "releaseLock"), + a(WritableStreamDefaultWriter.prototype.write, "write"), + "symbol" == typeof t.toStringTag && + Object.defineProperty( + WritableStreamDefaultWriter.prototype, + t.toStringTag, + { value: "WritableStreamDefaultWriter", configurable: !0 } + ); + const st = {}; + class WritableStreamDefaultController { + constructor() { + throw new TypeError("Illegal constructor"); + } + get abortReason() { + if (!ut(this)) throw mt("abortReason"); + return this._abortReason; + } + get signal() { + if (!ut(this)) throw mt("signal"); + if (void 0 === this._abortController) + throw new TypeError( + "WritableStreamDefaultController.prototype.signal is not supported" + ); + return this._abortController.signal; + } + error(e) { + if (!ut(this)) throw mt("error"); + "writable" === this._controlledWritableStream._state && _t(this, e); + } + [R](e) { + const t = this._abortAlgorithm(e); + return ct(this), t; + } + [T]() { + de(this); + } + } + function ut(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call( + e, + "_controlledWritableStream" + ) && + e instanceof WritableStreamDefaultController + ); + } + function ct(e) { + (e._writeAlgorithm = void 0), + (e._closeAlgorithm = void 0), + (e._abortAlgorithm = void 0), + (e._strategySizeAlgorithm = void 0); + } + function dt(e) { + return e._strategyHWM - e._queueTotalSize; + } + function ft(e) { + const t = e._controlledWritableStream; + if (!e._started) return; + if (void 0 !== t._inFlightWriteRequest) return; + if ("erroring" === t._state) return void rt(t); + if (0 === e._queue.length) return; + const r = e._queue.peek().value; + r === st + ? (function (e) { + const t = e._controlledWritableStream; + (function (e) { + (e._inFlightCloseRequest = e._closeRequest), + (e._closeRequest = void 0); + })(t), + ue(e); + const r = e._closeAlgorithm(); + ct(e), + h( + r, + () => ( + (function (e) { + e._inFlightCloseRequest._resolve(void 0), + (e._inFlightCloseRequest = void 0), + "erroring" === e._state && + ((e._storedError = void 0), + void 0 !== e._pendingAbortRequest && + (e._pendingAbortRequest._resolve(), + (e._pendingAbortRequest = void 0))), + (e._state = "closed"); + const t = e._writer; + void 0 !== t && Rt(t); + })(t), + null + ), + (e) => ( + (function (e, t) { + e._inFlightCloseRequest._reject(t), + (e._inFlightCloseRequest = void 0), + void 0 !== e._pendingAbortRequest && + (e._pendingAbortRequest._reject(t), + (e._pendingAbortRequest = void 0)), + et(e, t); + })(t, e), + null + ) + ); + })(e) + : (function (e, t) { + const r = e._controlledWritableStream; + !(function (e) { + e._inFlightWriteRequest = e._writeRequests.shift(); + })(r); + h( + e._writeAlgorithm(t), + () => { + !(function (e) { + e._inFlightWriteRequest._resolve(void 0), + (e._inFlightWriteRequest = void 0); + })(r); + const t = r._state; + if ((ue(e), !ot(r) && "writable" === t)) { + const t = ht(e); + at(r, t); + } + return ft(e), null; + }, + (t) => ( + "writable" === r._state && ct(e), + (function (e, t) { + e._inFlightWriteRequest._reject(t), + (e._inFlightWriteRequest = void 0), + et(e, t); + })(r, t), + null + ) + ); + })(e, r); + } + function bt(e, t) { + "writable" === e._controlledWritableStream._state && _t(e, t); + } + function ht(e) { + return dt(e) <= 0; + } + function _t(e, t) { + const r = e._controlledWritableStream; + ct(e), tt(r, t); + } + function pt(e) { + return new TypeError( + `WritableStream.prototype.${e} can only be used on a WritableStream` + ); + } + function mt(e) { + return new TypeError( + `WritableStreamDefaultController.prototype.${e} can only be used on a WritableStreamDefaultController` + ); + } + function yt(e) { + return new TypeError( + `WritableStreamDefaultWriter.prototype.${e} can only be used on a WritableStreamDefaultWriter` + ); + } + function gt(e) { + return new TypeError( + "Cannot " + e + " a stream using a released writer" + ); + } + function St(e) { + e._closedPromise = c((t, r) => { + (e._closedPromise_resolve = t), + (e._closedPromise_reject = r), + (e._closedPromiseState = "pending"); + }); + } + function wt(e, t) { + St(e), vt(e, t); + } + function vt(e, t) { + void 0 !== e._closedPromise_reject && + (y(e._closedPromise), + e._closedPromise_reject(t), + (e._closedPromise_resolve = void 0), + (e._closedPromise_reject = void 0), + (e._closedPromiseState = "rejected")); + } + function Rt(e) { + void 0 !== e._closedPromise_resolve && + (e._closedPromise_resolve(void 0), + (e._closedPromise_resolve = void 0), + (e._closedPromise_reject = void 0), + (e._closedPromiseState = "resolved")); + } + function Tt(e) { + (e._readyPromise = c((t, r) => { + (e._readyPromise_resolve = t), (e._readyPromise_reject = r); + })), + (e._readyPromiseState = "pending"); + } + function qt(e, t) { + Tt(e), Pt(e, t); + } + function Ct(e) { + Tt(e), Et(e); + } + function Pt(e, t) { + void 0 !== e._readyPromise_reject && + (y(e._readyPromise), + e._readyPromise_reject(t), + (e._readyPromise_resolve = void 0), + (e._readyPromise_reject = void 0), + (e._readyPromiseState = "rejected")); + } + function Et(e) { + void 0 !== e._readyPromise_resolve && + (e._readyPromise_resolve(void 0), + (e._readyPromise_resolve = void 0), + (e._readyPromise_reject = void 0), + (e._readyPromiseState = "fulfilled")); + } + Object.defineProperties(WritableStreamDefaultController.prototype, { + abortReason: { enumerable: !0 }, + signal: { enumerable: !0 }, + error: { enumerable: !0 }, + }), + "symbol" == typeof t.toStringTag && + Object.defineProperty( + WritableStreamDefaultController.prototype, + t.toStringTag, + { value: "WritableStreamDefaultController", configurable: !0 } + ); + const Wt = "undefined" != typeof DOMException ? DOMException : void 0; + const Ot = (function (e) { + if ("function" != typeof e && "object" != typeof e) return !1; + try { + return new e(), !0; + } catch (e) { + return !1; + } + })(Wt) + ? Wt + : (function () { + const e = function (e, t) { + (this.message = e || ""), + (this.name = t || "Error"), + Error.captureStackTrace && + Error.captureStackTrace(this, this.constructor); + }; + return ( + (e.prototype = Object.create(Error.prototype)), + Object.defineProperty(e.prototype, "constructor", { + value: e, + writable: !0, + configurable: !0, + }), + e + ); + })(); + function kt(e, t, r, o, n, a) { + const i = e.getReader(), + l = t.getWriter(); + Ut(e) && (e._disturbed = !0); + let s, + u, + p, + S = !1, + w = !1, + v = "readable", + R = "writable", + T = !1, + q = !1; + const C = c((e) => { + p = e; + }); + let P = Promise.resolve(void 0); + return c((E, W) => { + let O; + function k() { + if (S) return; + const e = c((e, t) => { + !(function r(o) { + o + ? e() + : b( + (function () { + if (S) return d(!0); + return b(l.ready, () => + b( + i.read(), + (e) => + !!e.done || ((P = l.write(e.value)), y(P), !1) + ) + ); + })(), + r, + t + ); + })(!1); + }); + y(e); + } + function B() { + return ( + (v = "closed"), + r + ? L() + : z( + () => ( + Xe(t) && ((T = ot(t)), (R = t._state)), + T || "closed" === R + ? d(void 0) + : "erroring" === R || "errored" === R + ? f(u) + : ((T = !0), l.close()) + ), + !1, + void 0 + ), + null + ); + } + function A(e) { + return ( + S || + ((v = "errored"), + (s = e), + o ? L(!0, e) : z(() => l.abort(e), !0, e)), + null + ); + } + function j(e) { + return ( + w || + ((R = "errored"), + (u = e), + n ? L(!0, e) : z(() => i.cancel(e), !0, e)), + null + ); + } + if ( + (void 0 !== a && + ((O = () => { + const e = + void 0 !== a.reason + ? a.reason + : new Ot("Aborted", "AbortError"), + t = []; + o || + t.push(() => ("writable" === R ? l.abort(e) : d(void 0))), + n || + t.push(() => + "readable" === v ? i.cancel(e) : d(void 0) + ), + z(() => Promise.all(t.map((e) => e())), !0, e); + }), + a.aborted ? O() : a.addEventListener("abort", O)), + Ut(e) && ((v = e._state), (s = e._storedError)), + Xe(t) && ((R = t._state), (u = t._storedError), (T = ot(t))), + Ut(e) && Xe(t) && ((q = !0), p()), + "errored" === v) + ) + A(s); + else if ("erroring" === R || "errored" === R) j(u); + else if ("closed" === v) B(); + else if (T || "closed" === R) { + const e = new TypeError( + "the destination writable stream closed before all data could be piped to it" + ); + n ? L(!0, e) : z(() => i.cancel(e), !0, e); + } + function z(e, t, r) { + function o() { + return ( + "writable" !== R || T + ? n() + : _( + (function () { + let e; + return d( + (function t() { + if (e !== P) return (e = P), m(P, t, t); + })() + ); + })(), + n + ), + null + ); + } + function n() { + return ( + e + ? h( + e(), + () => F(t, r), + (e) => F(!0, e) + ) + : F(t, r), + null + ); + } + S || ((S = !0), q ? o() : _(C, o)); + } + function L(e, t) { + z(void 0, e, t); + } + function F(e, t) { + return ( + (w = !0), + l.releaseLock(), + i.releaseLock(), + void 0 !== a && a.removeEventListener("abort", O), + e ? W(t) : E(void 0), + null + ); + } + S || + (h(i.closed, B, A), + h( + l.closed, + function () { + return w || (R = "closed"), null; + }, + j + )), + q + ? k() + : g(() => { + (q = !0), p(), k(); + }); + }); + } + function Bt(e, t) { + return (function (e) { + try { + return e.getReader({ mode: "byob" }).releaseLock(), !0; + } catch (e) { + return !1; + } + })(e) + ? (function (e) { + let t, + r, + o, + n, + a, + i = e.getReader(), + l = !1, + s = !1, + u = !1, + f = !1, + b = !1, + _ = !1; + const m = c((e) => { + a = e; + }); + function y(e) { + p( + e.closed, + (t) => ( + e !== i || + (o.error(t), n.error(t), (b && _) || a(void 0)), + null + ) + ); + } + function g() { + l && (i.releaseLock(), (i = e.getReader()), y(i), (l = !1)), + h( + i.read(), + (e) => { + var t, r; + if (((u = !1), (f = !1), e.done)) + return ( + b || o.close(), + _ || n.close(), + null === (t = o.byobRequest) || + void 0 === t || + t.respond(0), + null === (r = n.byobRequest) || + void 0 === r || + r.respond(0), + (b && _) || a(void 0), + null + ); + const l = e.value, + c = l; + let d = l; + if (!b && !_) + try { + d = se(l); + } catch (e) { + return o.error(e), n.error(e), a(i.cancel(e)), null; + } + return ( + b || o.enqueue(c), + _ || n.enqueue(d), + (s = !1), + u ? w() : f && v(), + null + ); + }, + () => ((s = !1), null) + ); + } + function S(t, r) { + l || + (i.releaseLock(), + (i = e.getReader({ mode: "byob" })), + y(i), + (l = !0)); + const c = r ? n : o, + d = r ? o : n; + h( + i.read(t), + (e) => { + var t; + (u = !1), (f = !1); + const o = r ? _ : b, + n = r ? b : _; + if (e.done) { + o || c.close(), n || d.close(); + const r = e.value; + return ( + void 0 !== r && + (o || c.byobRequest.respondWithNewView(r), + n || + null === (t = d.byobRequest) || + void 0 === t || + t.respond(0)), + (o && n) || a(void 0), + null + ); + } + const l = e.value; + if (n) o || c.byobRequest.respondWithNewView(l); + else { + let e; + try { + e = se(l); + } catch (e) { + return c.error(e), d.error(e), a(i.cancel(e)), null; + } + o || c.byobRequest.respondWithNewView(l), d.enqueue(e); + } + return (s = !1), u ? w() : f && v(), null; + }, + () => ((s = !1), null) + ); + } + function w() { + if (s) return (u = !0), d(void 0); + s = !0; + const e = o.byobRequest; + return null === e ? g() : S(e.view, !1), d(void 0); + } + function v() { + if (s) return (f = !0), d(void 0); + s = !0; + const e = n.byobRequest; + return null === e ? g() : S(e.view, !0), d(void 0); + } + function R(e) { + if (((b = !0), (t = e), _)) { + const e = [t, r], + o = i.cancel(e); + a(o); + } + return m; + } + function T(e) { + if (((_ = !0), (r = e), b)) { + const e = [t, r], + o = i.cancel(e); + a(o); + } + return m; + } + const q = new ReadableStream({ + type: "bytes", + start(e) { + o = e; + }, + pull: w, + cancel: R, + }), + C = new ReadableStream({ + type: "bytes", + start(e) { + n = e; + }, + pull: v, + cancel: T, + }); + return y(i), [q, C]; + })(e) + : (function (e, t) { + const r = e.getReader(); + let o, + n, + a, + i, + l, + s = !1, + u = !1, + f = !1, + b = !1; + const _ = c((e) => { + l = e; + }); + function m() { + return s + ? ((u = !0), d(void 0)) + : ((s = !0), + h( + r.read(), + (e) => { + if (((u = !1), e.done)) + return ( + f || a.close(), + b || i.close(), + (f && b) || l(void 0), + null + ); + const t = e.value, + r = t, + o = t; + return ( + f || a.enqueue(r), + b || i.enqueue(o), + (s = !1), + u && m(), + null + ); + }, + () => ((s = !1), null) + ), + d(void 0)); + } + function y(e) { + if (((f = !0), (o = e), b)) { + const e = [o, n], + t = r.cancel(e); + l(t); + } + return _; + } + function g(e) { + if (((b = !0), (n = e), f)) { + const e = [o, n], + t = r.cancel(e); + l(t); + } + return _; + } + const S = new ReadableStream({ + start(e) { + a = e; + }, + pull: m, + cancel: y, + }), + w = new ReadableStream({ + start(e) { + i = e; + }, + pull: m, + cancel: g, + }); + return ( + p( + r.closed, + (e) => (a.error(e), i.error(e), (f && b) || l(void 0), null) + ), + [S, w] + ); + })(e); + } + class ReadableStreamDefaultController { + constructor() { + throw new TypeError("Illegal constructor"); + } + get desiredSize() { + if (!At(this)) throw $t("desiredSize"); + return Ft(this); + } + close() { + if (!At(this)) throw $t("close"); + if (!Dt(this)) + throw new TypeError( + "The stream is not in a state that permits close" + ); + !(function (e) { + if (!Dt(e)) return; + const t = e._controlledReadableStream; + (e._closeRequested = !0), 0 === e._queue.length && (zt(e), Jt(t)); + })(this); + } + enqueue(e) { + if (!At(this)) throw $t("enqueue"); + if (!Dt(this)) + throw new TypeError( + "The stream is not in a state that permits enqueue" + ); + return (function (e, t) { + if (!Dt(e)) return; + const r = e._controlledReadableStream; + if (Gt(r) && J(r) > 0) X(r, t, !1); + else { + let r; + try { + r = e._strategySizeAlgorithm(t); + } catch (t) { + throw (Lt(e, t), t); + } + try { + ce(e, t, r); + } catch (t) { + throw (Lt(e, t), t); + } + } + jt(e); + })(this, e); + } + error(e) { + if (!At(this)) throw $t("error"); + Lt(this, e); + } + [q](e) { + de(this); + const t = this._cancelAlgorithm(e); + return zt(this), t; + } + [C](e) { + const t = this._controlledReadableStream; + if (this._queue.length > 0) { + const r = ue(this); + this._closeRequested && 0 === this._queue.length + ? (zt(this), Jt(t)) + : jt(this), + e._chunkSteps(r); + } else G(t, e), jt(this); + } + [P]() {} + } + function At(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call( + e, + "_controlledReadableStream" + ) && + e instanceof ReadableStreamDefaultController + ); + } + function jt(e) { + const t = (function (e) { + const t = e._controlledReadableStream; + if (!Dt(e)) return !1; + if (!e._started) return !1; + if (Gt(t) && J(t) > 0) return !0; + if (Ft(e) > 0) return !0; + return !1; + })(e); + if (!t) return; + if (e._pulling) return void (e._pullAgain = !0); + e._pulling = !0; + h( + e._pullAlgorithm(), + () => ( + (e._pulling = !1), + e._pullAgain && ((e._pullAgain = !1), jt(e)), + null + ), + (t) => (Lt(e, t), null) + ); + } + function zt(e) { + (e._pullAlgorithm = void 0), + (e._cancelAlgorithm = void 0), + (e._strategySizeAlgorithm = void 0); + } + function Lt(e, t) { + const r = e._controlledReadableStream; + "readable" === r._state && (de(e), zt(e), Kt(r, t)); + } + function Ft(e) { + const t = e._controlledReadableStream._state; + return "errored" === t + ? null + : "closed" === t + ? 0 + : e._strategyHWM - e._queueTotalSize; + } + function Dt(e) { + return ( + !e._closeRequested && + "readable" === e._controlledReadableStream._state + ); + } + function It(e, t, r, o) { + const n = Object.create(ReadableStreamDefaultController.prototype); + let a, i, l; + (a = void 0 !== t.start ? () => t.start(n) : () => {}), + (i = void 0 !== t.pull ? () => t.pull(n) : () => d(void 0)), + (l = void 0 !== t.cancel ? (e) => t.cancel(e) : () => d(void 0)), + (function (e, t, r, o, n, a, i) { + (t._controlledReadableStream = e), + (t._queue = void 0), + (t._queueTotalSize = void 0), + de(t), + (t._started = !1), + (t._closeRequested = !1), + (t._pullAgain = !1), + (t._pulling = !1), + (t._strategySizeAlgorithm = i), + (t._strategyHWM = a), + (t._pullAlgorithm = o), + (t._cancelAlgorithm = n), + (e._readableStreamController = t), + h( + d(r()), + () => ((t._started = !0), jt(t), null), + (e) => (Lt(t, e), null) + ); + })(e, n, a, i, l, r, o); + } + function $t(e) { + return new TypeError( + `ReadableStreamDefaultController.prototype.${e} can only be used on a ReadableStreamDefaultController` + ); + } + function Mt(e, t, r) { + return I(e, r), (r) => w(e, t, [r]); + } + function Yt(e, t, r) { + return I(e, r), (r) => w(e, t, [r]); + } + function Qt(e, t, r) { + return I(e, r), (r) => S(e, t, [r]); + } + function Nt(e, t) { + if ("bytes" !== (e = `${e}`)) + throw new TypeError( + `${t} '${e}' is not a valid enumeration value for ReadableStreamType` + ); + return e; + } + function xt(e, t) { + if ("byob" !== (e = `${e}`)) + throw new TypeError( + `${t} '${e}' is not a valid enumeration value for ReadableStreamReaderMode` + ); + return e; + } + function Ht(e, t) { + D(e, t); + const r = null == e ? void 0 : e.preventAbort, + o = null == e ? void 0 : e.preventCancel, + n = null == e ? void 0 : e.preventClose, + a = null == e ? void 0 : e.signal; + return ( + void 0 !== a && + (function (e, t) { + if ( + !(function (e) { + if ("object" != typeof e || null === e) return !1; + try { + return "boolean" == typeof e.aborted; + } catch (e) { + return !1; + } + })(e) + ) + throw new TypeError(`${t} is not an AbortSignal.`); + })(a, `${t} has member 'signal' that`), + { + preventAbort: Boolean(r), + preventCancel: Boolean(o), + preventClose: Boolean(n), + signal: a, + } + ); + } + function Vt(e, t) { + D(e, t); + const r = null == e ? void 0 : e.readable; + Y(r, "readable", "ReadableWritablePair"), + (function (e, t) { + if (!H(e)) throw new TypeError(`${t} is not a ReadableStream.`); + })(r, `${t} has member 'readable' that`); + const o = null == e ? void 0 : e.writable; + return ( + Y(o, "writable", "ReadableWritablePair"), + (function (e, t) { + if (!V(e)) throw new TypeError(`${t} is not a WritableStream.`); + })(o, `${t} has member 'writable' that`), + { readable: r, writable: o } + ); + } + Object.defineProperties(ReadableStreamDefaultController.prototype, { + close: { enumerable: !0 }, + enqueue: { enumerable: !0 }, + error: { enumerable: !0 }, + desiredSize: { enumerable: !0 }, + }), + a(ReadableStreamDefaultController.prototype.close, "close"), + a(ReadableStreamDefaultController.prototype.enqueue, "enqueue"), + a(ReadableStreamDefaultController.prototype.error, "error"), + "symbol" == typeof t.toStringTag && + Object.defineProperty( + ReadableStreamDefaultController.prototype, + t.toStringTag, + { value: "ReadableStreamDefaultController", configurable: !0 } + ); + class ReadableStream { + constructor(e = {}, t = {}) { + void 0 === e ? (e = null) : $(e, "First parameter"); + const r = Qe(t, "Second parameter"), + o = (function (e, t) { + D(e, t); + const r = e, + o = null == r ? void 0 : r.autoAllocateChunkSize, + n = null == r ? void 0 : r.cancel, + a = null == r ? void 0 : r.pull, + i = null == r ? void 0 : r.start, + l = null == r ? void 0 : r.type; + return { + autoAllocateChunkSize: + void 0 === o + ? void 0 + : x(o, `${t} has member 'autoAllocateChunkSize' that`), + cancel: + void 0 === n + ? void 0 + : Mt(n, r, `${t} has member 'cancel' that`), + pull: + void 0 === a + ? void 0 + : Yt(a, r, `${t} has member 'pull' that`), + start: + void 0 === i + ? void 0 + : Qt(i, r, `${t} has member 'start' that`), + type: + void 0 === l + ? void 0 + : Nt(l, `${t} has member 'type' that`), + }; + })(e, "First parameter"); + var n; + if ( + (((n = this)._state = "readable"), + (n._reader = void 0), + (n._storedError = void 0), + (n._disturbed = !1), + "bytes" === o.type) + ) { + if (void 0 !== r.size) + throw new RangeError( + "The strategy for a byte stream cannot have a size function" + ); + Be(this, o, Me(r, 0)); + } else { + const e = Ye(r); + It(this, o, Me(r, 1), e); + } + } + get locked() { + if (!Ut(this)) throw Zt("locked"); + return Gt(this); + } + cancel(e) { + return Ut(this) + ? Gt(this) + ? f( + new TypeError( + "Cannot cancel a stream that already has a reader" + ) + ) + : Xt(this, e) + : f(Zt("cancel")); + } + getReader(e) { + if (!Ut(this)) throw Zt("getReader"); + return void 0 === + (function (e, t) { + D(e, t); + const r = null == e ? void 0 : e.mode; + return { + mode: + void 0 === r + ? void 0 + : xt(r, `${t} has member 'mode' that`), + }; + })(e, "First parameter").mode + ? new ReadableStreamDefaultReader(this) + : (function (e) { + return new ReadableStreamBYOBReader(e); + })(this); + } + pipeThrough(e, t = {}) { + if (!H(this)) throw Zt("pipeThrough"); + M(e, 1, "pipeThrough"); + const r = Vt(e, "First parameter"), + o = Ht(t, "Second parameter"); + if (this.locked) + throw new TypeError( + "ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream" + ); + if (r.writable.locked) + throw new TypeError( + "ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream" + ); + return ( + y( + kt( + this, + r.writable, + o.preventClose, + o.preventAbort, + o.preventCancel, + o.signal + ) + ), + r.readable + ); + } + pipeTo(e, t = {}) { + if (!H(this)) return f(Zt("pipeTo")); + if (void 0 === e) return f("Parameter 1 is required in 'pipeTo'."); + if (!V(e)) + return f( + new TypeError( + "ReadableStream.prototype.pipeTo's first argument must be a WritableStream" + ) + ); + let r; + try { + r = Ht(t, "Second parameter"); + } catch (e) { + return f(e); + } + return this.locked + ? f( + new TypeError( + "ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream" + ) + ) + : e.locked + ? f( + new TypeError( + "ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream" + ) + ) + : kt( + this, + e, + r.preventClose, + r.preventAbort, + r.preventCancel, + r.signal + ); + } + tee() { + if (!H(this)) throw Zt("tee"); + if (this.locked) + throw new TypeError( + "Cannot tee a stream that already has a reader" + ); + return Bt(this); + } + values(e) { + if (!H(this)) throw Zt("values"); + return (function (e, t) { + const r = e.getReader(), + o = new re(r, t), + n = Object.create(oe); + return (n._asyncIteratorImpl = o), n; + })( + this, + (function (e, t) { + D(e, t); + const r = null == e ? void 0 : e.preventCancel; + return { preventCancel: Boolean(r) }; + })(e, "First parameter").preventCancel + ); + } + } + function Ut(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call( + e, + "_readableStreamController" + ) && + e instanceof ReadableStream + ); + } + function Gt(e) { + return void 0 !== e._reader; + } + function Xt(e, t) { + if (((e._disturbed = !0), "closed" === e._state)) return d(void 0); + if ("errored" === e._state) return f(e._storedError); + Jt(e); + const o = e._reader; + if (void 0 !== o && De(o)) { + const e = o._readIntoRequests; + (o._readIntoRequests = new v()), + e.forEach((e) => { + e._closeSteps(void 0); + }); + } + return m(e._readableStreamController[q](t), r); + } + function Jt(e) { + e._state = "closed"; + const t = e._reader; + if (void 0 !== t && (z(t), Z(t))) { + const e = t._readRequests; + (t._readRequests = new v()), + e.forEach((e) => { + e._closeSteps(); + }); + } + } + function Kt(e, t) { + (e._state = "errored"), (e._storedError = t); + const r = e._reader; + void 0 !== r && (j(r, t), Z(r) ? ee(r, t) : Ie(r, t)); + } + function Zt(e) { + return new TypeError( + `ReadableStream.prototype.${e} can only be used on a ReadableStream` + ); + } + function er(e, t) { + D(e, t); + const r = null == e ? void 0 : e.highWaterMark; + return ( + Y(r, "highWaterMark", "QueuingStrategyInit"), + { highWaterMark: Q(r) } + ); + } + Object.defineProperties(ReadableStream.prototype, { + cancel: { enumerable: !0 }, + getReader: { enumerable: !0 }, + pipeThrough: { enumerable: !0 }, + pipeTo: { enumerable: !0 }, + tee: { enumerable: !0 }, + values: { enumerable: !0 }, + locked: { enumerable: !0 }, + }), + a(ReadableStream.prototype.cancel, "cancel"), + a(ReadableStream.prototype.getReader, "getReader"), + a(ReadableStream.prototype.pipeThrough, "pipeThrough"), + a(ReadableStream.prototype.pipeTo, "pipeTo"), + a(ReadableStream.prototype.tee, "tee"), + a(ReadableStream.prototype.values, "values"), + "symbol" == typeof t.toStringTag && + Object.defineProperty(ReadableStream.prototype, t.toStringTag, { + value: "ReadableStream", + configurable: !0, + }), + "symbol" == typeof t.asyncIterator && + Object.defineProperty(ReadableStream.prototype, t.asyncIterator, { + value: ReadableStream.prototype.values, + writable: !0, + configurable: !0, + }); + const tr = (e) => e.byteLength; + a(tr, "size"); + class ByteLengthQueuingStrategy { + constructor(e) { + M(e, 1, "ByteLengthQueuingStrategy"), + (e = er(e, "First parameter")), + (this._byteLengthQueuingStrategyHighWaterMark = e.highWaterMark); + } + get highWaterMark() { + if (!or(this)) throw rr("highWaterMark"); + return this._byteLengthQueuingStrategyHighWaterMark; + } + get size() { + if (!or(this)) throw rr("size"); + return tr; + } + } + function rr(e) { + return new TypeError( + `ByteLengthQueuingStrategy.prototype.${e} can only be used on a ByteLengthQueuingStrategy` + ); + } + function or(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call( + e, + "_byteLengthQueuingStrategyHighWaterMark" + ) && + e instanceof ByteLengthQueuingStrategy + ); + } + Object.defineProperties(ByteLengthQueuingStrategy.prototype, { + highWaterMark: { enumerable: !0 }, + size: { enumerable: !0 }, + }), + "symbol" == typeof t.toStringTag && + Object.defineProperty( + ByteLengthQueuingStrategy.prototype, + t.toStringTag, + { value: "ByteLengthQueuingStrategy", configurable: !0 } + ); + const nr = () => 1; + a(nr, "size"); + class CountQueuingStrategy { + constructor(e) { + M(e, 1, "CountQueuingStrategy"), + (e = er(e, "First parameter")), + (this._countQueuingStrategyHighWaterMark = e.highWaterMark); + } + get highWaterMark() { + if (!ir(this)) throw ar("highWaterMark"); + return this._countQueuingStrategyHighWaterMark; + } + get size() { + if (!ir(this)) throw ar("size"); + return nr; + } + } + function ar(e) { + return new TypeError( + `CountQueuingStrategy.prototype.${e} can only be used on a CountQueuingStrategy` + ); + } + function ir(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call( + e, + "_countQueuingStrategyHighWaterMark" + ) && + e instanceof CountQueuingStrategy + ); + } + function lr(e, t, r) { + return I(e, r), (r) => w(e, t, [r]); + } + function sr(e, t, r) { + return I(e, r), (r) => S(e, t, [r]); + } + function ur(e, t, r) { + return I(e, r), (r, o) => w(e, t, [r, o]); + } + Object.defineProperties(CountQueuingStrategy.prototype, { + highWaterMark: { enumerable: !0 }, + size: { enumerable: !0 }, + }), + "symbol" == typeof t.toStringTag && + Object.defineProperty( + CountQueuingStrategy.prototype, + t.toStringTag, + { value: "CountQueuingStrategy", configurable: !0 } + ); + class TransformStream { + constructor(e = {}, t = {}, r = {}) { + void 0 === e && (e = null); + const o = Qe(t, "Second parameter"), + n = Qe(r, "Third parameter"), + a = (function (e, t) { + D(e, t); + const r = null == e ? void 0 : e.flush, + o = null == e ? void 0 : e.readableType, + n = null == e ? void 0 : e.start, + a = null == e ? void 0 : e.transform, + i = null == e ? void 0 : e.writableType; + return { + flush: + void 0 === r + ? void 0 + : lr(r, e, `${t} has member 'flush' that`), + readableType: o, + start: + void 0 === n + ? void 0 + : sr(n, e, `${t} has member 'start' that`), + transform: + void 0 === a + ? void 0 + : ur(a, e, `${t} has member 'transform' that`), + writableType: i, + }; + })(e, "First parameter"); + if (void 0 !== a.readableType) + throw new RangeError("Invalid readableType specified"); + if (void 0 !== a.writableType) + throw new RangeError("Invalid writableType specified"); + const i = Me(n, 0), + l = Ye(n), + s = Me(o, 1), + u = Ye(o); + let b; + !(function (e, t, r, o, n, a) { + function i() { + return t; + } + function l(t) { + return (function (e, t) { + const r = e._transformStreamController; + if (e._backpressure) { + return m(e._backpressureChangePromise, () => { + if ( + "erroring" === + (Xe(e._writable) + ? e._writable._state + : e._writableState) + ) + throw Xe(e._writable) + ? e._writable._storedError + : e._writableStoredError; + return mr(r, t); + }); + } + return mr(r, t); + })(e, t); + } + function s(t) { + return (function (e, t) { + return dr(e, t), d(void 0); + })(e, t); + } + function u() { + return (function (e) { + const t = e._transformStreamController, + r = t._flushAlgorithm(); + return ( + _r(t), + m( + r, + () => { + if ("errored" === e._readableState) + throw e._readableStoredError; + Sr(e) && wr(e); + }, + (t) => { + throw (dr(e, t), e._readableStoredError); + } + ) + ); + })(e); + } + function c() { + return (function (e) { + return br(e, !1), e._backpressureChangePromise; + })(e); + } + function f(t) { + return fr(e, t), d(void 0); + } + (e._writableState = "writable"), + (e._writableStoredError = void 0), + (e._writableHasInFlightOperation = !1), + (e._writableStarted = !1), + (e._writable = (function (e, t, r, o, n, a, i) { + return new WritableStream( + { + start(r) { + e._writableController = r; + try { + const t = r.signal; + void 0 !== t && + t.addEventListener("abort", () => { + "writable" === e._writableState && + ((e._writableState = "erroring"), + t.reason && + (e._writableStoredError = t.reason)); + }); + } catch (e) {} + return m( + t(), + () => ((e._writableStarted = !0), Pr(e), null), + (t) => { + throw ((e._writableStarted = !0), Tr(e, t), t); + } + ); + }, + write: (t) => ( + (function (e) { + e._writableHasInFlightOperation = !0; + })(e), + m( + r(t), + () => ( + (function (e) { + e._writableHasInFlightOperation = !1; + })(e), + Pr(e), + null + ), + (t) => { + throw ( + ((function (e, t) { + (e._writableHasInFlightOperation = !1), + Tr(e, t); + })(e, t), + t) + ); + } + ) + ), + close: () => ( + (function (e) { + e._writableHasInFlightOperation = !0; + })(e), + m( + o(), + () => ( + (function (e) { + e._writableHasInFlightOperation = !1; + "erroring" === e._writableState && + (e._writableStoredError = void 0); + e._writableState = "closed"; + })(e), + null + ), + (t) => { + throw ( + ((function (e, t) { + (e._writableHasInFlightOperation = !1), + e._writableState, + Tr(e, t); + })(e, t), + t) + ); + } + ) + ), + abort: (t) => ( + (e._writableState = "errored"), + (e._writableStoredError = t), + n(t) + ), + }, + { highWaterMark: a, size: i } + ); + })(e, i, l, u, s, r, o)), + (e._readableState = "readable"), + (e._readableStoredError = void 0), + (e._readableCloseRequested = !1), + (e._readablePulling = !1), + (e._readable = (function (e, t, r, o, n, a) { + return new ReadableStream( + { + start: (r) => ( + (e._readableController = r), + t().catch((t) => { + vr(e, t); + }) + ), + pull: () => ( + (e._readablePulling = !0), + r().catch((t) => { + vr(e, t); + }) + ), + cancel: (t) => ((e._readableState = "closed"), o(t)), + }, + { highWaterMark: n, size: a } + ); + })(e, i, c, f, n, a)), + (e._backpressure = void 0), + (e._backpressureChangePromise = void 0), + (e._backpressureChangePromise_resolve = void 0), + br(e, !0), + (e._transformStreamController = void 0); + })( + this, + c((e) => { + b = e; + }), + s, + u, + i, + l + ), + (function (e, t) { + const r = Object.create( + TransformStreamDefaultController.prototype + ); + let o, n; + o = + void 0 !== t.transform + ? (e) => t.transform(e, r) + : (e) => { + try { + return pr(r, e), d(void 0); + } catch (e) { + return f(e); + } + }; + n = void 0 !== t.flush ? () => t.flush(r) : () => d(void 0); + !(function (e, t, r, o) { + (t._controlledTransformStream = e), + (e._transformStreamController = t), + (t._transformAlgorithm = r), + (t._flushAlgorithm = o); + })(e, r, o, n); + })(this, a), + void 0 !== a.start + ? b(a.start(this._transformStreamController)) + : b(void 0); + } + get readable() { + if (!cr(this)) throw gr("readable"); + return this._readable; + } + get writable() { + if (!cr(this)) throw gr("writable"); + return this._writable; + } + } + function cr(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call( + e, + "_transformStreamController" + ) && + e instanceof TransformStream + ); + } + function dr(e, t) { + vr(e, t), fr(e, t); + } + function fr(e, t) { + _r(e._transformStreamController), + (function (e, t) { + e._writableController.error(t); + "writable" === e._writableState && qr(e, t); + })(e, t), + e._backpressure && br(e, !1); + } + function br(e, t) { + void 0 !== e._backpressureChangePromise && + e._backpressureChangePromise_resolve(), + (e._backpressureChangePromise = c((t) => { + e._backpressureChangePromise_resolve = t; + })), + (e._backpressure = t); + } + Object.defineProperties(TransformStream.prototype, { + readable: { enumerable: !0 }, + writable: { enumerable: !0 }, + }), + "symbol" == typeof t.toStringTag && + Object.defineProperty(TransformStream.prototype, t.toStringTag, { + value: "TransformStream", + configurable: !0, + }); + class TransformStreamDefaultController { + constructor() { + throw new TypeError("Illegal constructor"); + } + get desiredSize() { + if (!hr(this)) throw yr("desiredSize"); + return Rr(this._controlledTransformStream); + } + enqueue(e) { + if (!hr(this)) throw yr("enqueue"); + pr(this, e); + } + error(e) { + if (!hr(this)) throw yr("error"); + var t; + (t = e), dr(this._controlledTransformStream, t); + } + terminate() { + if (!hr(this)) throw yr("terminate"); + !(function (e) { + const t = e._controlledTransformStream; + Sr(t) && wr(t); + const r = new TypeError("TransformStream terminated"); + fr(t, r); + })(this); + } + } + function hr(e) { + return ( + !!o(e) && + !!Object.prototype.hasOwnProperty.call( + e, + "_controlledTransformStream" + ) && + e instanceof TransformStreamDefaultController + ); + } + function _r(e) { + (e._transformAlgorithm = void 0), (e._flushAlgorithm = void 0); + } + function pr(e, t) { + const r = e._controlledTransformStream; + if (!Sr(r)) + throw new TypeError( + "Readable side is not in a state that permits enqueue" + ); + try { + !(function (e, t) { + e._readablePulling = !1; + try { + e._readableController.enqueue(t); + } catch (t) { + throw (vr(e, t), t); + } + })(r, t); + } catch (e) { + throw (fr(r, e), r._readableStoredError); + } + const o = (function (e) { + return !(function (e) { + if (!Sr(e)) return !1; + if (e._readablePulling) return !0; + if (Rr(e) > 0) return !0; + return !1; + })(e); + })(r); + o !== r._backpressure && br(r, !0); + } + function mr(e, t) { + return m(e._transformAlgorithm(t), void 0, (t) => { + throw (dr(e._controlledTransformStream, t), t); + }); + } + function yr(e) { + return new TypeError( + `TransformStreamDefaultController.prototype.${e} can only be used on a TransformStreamDefaultController` + ); + } + function gr(e) { + return new TypeError( + `TransformStream.prototype.${e} can only be used on a TransformStream` + ); + } + function Sr(e) { + return !e._readableCloseRequested && "readable" === e._readableState; + } + function wr(e) { + (e._readableState = "closed"), + (e._readableCloseRequested = !0), + e._readableController.close(); + } + function vr(e, t) { + "readable" === e._readableState && + ((e._readableState = "errored"), (e._readableStoredError = t)), + e._readableController.error(t); + } + function Rr(e) { + return e._readableController.desiredSize; + } + function Tr(e, t) { + "writable" !== e._writableState ? Cr(e) : qr(e, t); + } + function qr(e, t) { + (e._writableState = "erroring"), + (e._writableStoredError = t), + !(function (e) { + return e._writableHasInFlightOperation; + })(e) && + e._writableStarted && + Cr(e); + } + function Cr(e) { + e._writableState = "errored"; + } + function Pr(e) { + "erroring" === e._writableState && Cr(e); + } + Object.defineProperties(TransformStreamDefaultController.prototype, { + enqueue: { enumerable: !0 }, + error: { enumerable: !0 }, + terminate: { enumerable: !0 }, + desiredSize: { enumerable: !0 }, + }), + a(TransformStreamDefaultController.prototype.enqueue, "enqueue"), + a(TransformStreamDefaultController.prototype.error, "error"), + a(TransformStreamDefaultController.prototype.terminate, "terminate"), + "symbol" == typeof t.toStringTag && + Object.defineProperty( + TransformStreamDefaultController.prototype, + t.toStringTag, + { value: "TransformStreamDefaultController", configurable: !0 } + ), + (e.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy), + (e.CountQueuingStrategy = CountQueuingStrategy), + (e.ReadableByteStreamController = ReadableByteStreamController), + (e.ReadableStream = ReadableStream), + (e.ReadableStreamBYOBReader = ReadableStreamBYOBReader), + (e.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest), + (e.ReadableStreamDefaultController = ReadableStreamDefaultController), + (e.ReadableStreamDefaultReader = ReadableStreamDefaultReader), + (e.TransformStream = TransformStream), + (e.TransformStreamDefaultController = + TransformStreamDefaultController), + (e.WritableStream = WritableStream), + (e.WritableStreamDefaultController = WritableStreamDefaultController), + (e.WritableStreamDefaultWriter = WritableStreamDefaultWriter), + Object.defineProperty(e, "__esModule", { value: !0 }); + }); + + /***/ + }, + + /***/ 845: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + /*! + * humanize-ms - index.js + * Copyright(c) 2014 dead_horse + * MIT Licensed + */ + + /** + * Module dependencies. + */ + + var util = __nccwpck_require__(3837); + var ms = __nccwpck_require__(900); + + module.exports = function (t) { + if (typeof t === "number") return t; + var r = ms(t); + if (r === undefined) { + var err = new Error( + util.format("humanize-ms(%j) result undefined", t) + ); + console.warn(err.stack); + } + return r; + }; + + /***/ + }, + + /***/ 3287: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + /*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + + function isObject(o) { + return Object.prototype.toString.call(o) === "[object Object]"; } - } - } - inherits(OverriddenClientRequest, http.ClientRequest) - // Override the http module's request but keep the original so that we can use it and later restore it. - // NOTE: We only override http.ClientRequest as https module also uses it. - originalClientRequest = http.ClientRequest - http.ClientRequest = OverriddenClientRequest + function isPlainObject(o) { + var ctor, prot; - debug('ClientRequest overridden') -} + if (isObject(o) === false) return false; -function restoreOverriddenClientRequest() { - debug('restoring overridden ClientRequest') + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; - // Restore the ClientRequest we have overridden. - if (!originalClientRequest) { - debug('- ClientRequest was not overridden') - } else { - http.ClientRequest = originalClientRequest - originalClientRequest = undefined + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; - debug('- ClientRequest restored') - } -} + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty("isPrototypeOf") === false) { + return false; + } -function isActive() { - // If ClientRequest has been overwritten by Nock then originalClientRequest is not undefined. - // This means that Nock has been activated. - return originalClientRequest !== undefined -} + // Most likely a plain Object + return true; + } -function interceptorScopes() { - const nestedInterceptors = Object.values(allInterceptors).map( - i => i.interceptors, - ) - const scopes = new Set([].concat(...nestedInterceptors).map(i => i.scope)) - return [...scopes] -} + exports.isPlainObject = isPlainObject; -function isDone() { - return interceptorScopes().every(scope => scope.isDone()) -} + /***/ + }, -function pendingMocks() { - return [].concat(...interceptorScopes().map(scope => scope.pendingMocks())) -} + /***/ 7073: /***/ (module, exports) => { + exports = module.exports = stringify; + exports.getSerialize = serializer; -function activeMocks() { - return [].concat(...interceptorScopes().map(scope => scope.activeMocks())) -} + function stringify(obj, replacer, spaces, cycleReplacer) { + return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces); + } -function activate() { - if (originalClientRequest) { - throw new Error('Nock already active') - } + function serializer(replacer, cycleReplacer) { + var stack = [], + keys = []; - // ----- Overriding http.request and https.request: + if (cycleReplacer == null) + cycleReplacer = function (key, value) { + if (stack[0] === value) return "[Circular ~]"; + return ( + "[Circular ~." + + keys.slice(0, stack.indexOf(value)).join(".") + + "]" + ); + }; - common.overrideRequests(function (proto, overriddenRequest, args) { - // NOTE: overriddenRequest is already bound to its module. + return function (key, value) { + if (stack.length > 0) { + var thisPos = stack.indexOf(this); + ~thisPos ? stack.splice(thisPos + 1) : stack.push(this); + ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key); + if (~stack.indexOf(value)) + value = cycleReplacer.call(this, key, value); + } else stack.push(value); - const { options, callback } = common.normalizeClientRequestArgs(...args) + return replacer == null ? value : replacer.call(this, key, value); + }; + } - if (Object.keys(options).length === 0) { - // As weird as it is, it's possible to call `http.request` without - // options, and it makes a request to localhost or somesuch. We should - // support it too, for parity. However it doesn't work today, and fixing - // it seems low priority. Giving an explicit error is nicer than - // crashing with a weird stack trace. `new ClientRequest()`, nock's - // other client-facing entry point, makes a similar check. - // https://github.com/nock/nock/pull/1386 - // https://github.com/nock/nock/pull/1440 - throw Error( - 'Making a request with empty `options` is not supported in Nock', - ) - } + /***/ + }, - // The option per the docs is `protocol`. Its unclear if this line is meant to override that and is misspelled or if - // the intend is to explicitly keep track of which module was called using a separate name. - // Either way, `proto` is used as the source of truth from here on out. - options.proto = proto + /***/ 900: /***/ (module) => { + /** + * Helpers. + */ - const interceptors = interceptorsFor(options) + var s = 1000; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; - if (isOn() && interceptors) { - const matches = interceptors.some(interceptor => - interceptor.matchOrigin(options), - ) - const allowUnmocked = interceptors.some( - interceptor => interceptor.options.allowUnmocked, - ) + /** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ - if (!matches && allowUnmocked) { - let req - if (proto === 'https') { - const { ClientRequest } = http - http.ClientRequest = originalClientRequest - req = overriddenRequest(options, callback) - http.ClientRequest = ClientRequest + module.exports = function (val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + "val is not a non-empty string or a valid number. val=" + + JSON.stringify(val) + ); + }; + + /** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = + /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return undefined; + } + } + + /** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + + /** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + + /** + * Pluralization helper. + */ + + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); + } + + /***/ + }, + + /***/ 8437: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const back = __nccwpck_require__(1846); + const emitter = __nccwpck_require__(9935); + const { + activate, + isActive, + isDone, + isOn, + pendingMocks, + activeMocks, + removeInterceptor, + disableNetConnect, + enableNetConnect, + removeAll, + abortPendingRequests, + } = __nccwpck_require__(7607); + const recorder = __nccwpck_require__(8687); + const { Scope, load, loadDefs, define } = __nccwpck_require__(7004); + + module.exports = (basePath, options) => new Scope(basePath, options); + + Object.assign(module.exports, { + activate, + isActive, + isDone, + pendingMocks, + activeMocks, + removeInterceptor, + disableNetConnect, + enableNetConnect, + cleanAll: removeAll, + abortPendingRequests, + load, + loadDefs, + define, + emitter, + recorder: { + rec: recorder.record, + clear: recorder.clear, + play: recorder.outputs, + }, + restore: recorder.restore, + back, + }); + + // We always activate Nock on import, overriding the globals. + // Setting the Back mode "activates" Nock by overriding the global entries in the `http/s` modules. + // If Nock Back is configured, we need to honor that setting for backward compatibility, + // otherwise we rely on Nock Back's default initializing side effect. + if (isOn()) { + back.setMode(process.env.NOCK_BACK_MODE || "dryrun"); + } + + /***/ + }, + + /***/ 1846: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const assert = __nccwpck_require__(9491); + const recorder = __nccwpck_require__(8687); + const { + activate, + disableNetConnect, + enableNetConnect, + removeAll: cleanAll, + } = __nccwpck_require__(7607); + const { loadDefs, define } = __nccwpck_require__(7004); + + const { format } = __nccwpck_require__(3837); + const path = __nccwpck_require__(1017); + const debug = __nccwpck_require__(8237)("nock.back"); + + let _mode = null; + + let fs; + + try { + fs = __nccwpck_require__(7147); + } catch (err) { + // do nothing, probably in browser + } + + /** + * nock the current function with the fixture given + * + * @param {string} fixtureName - the name of the fixture, e.x. 'foo.json' + * @param {object} options - [optional] extra options for nock with, e.x. `{ assert: true }` + * @param {function} nockedFn - [optional] callback function to be executed with the given fixture being loaded; + * if defined the function will be called with context `{ scopes: loaded_nocks || [] }` + * set as `this` and `nockDone` callback function as first and only parameter; + * if not defined a promise resolving to `{nockDone, context}` where `context` is + * aforementioned `{ scopes: loaded_nocks || [] }` + * + * List of options: + * + * @param {function} before - a preprocessing function, gets called before nock.define + * @param {function} after - a postprocessing function, gets called after nock.define + * @param {function} afterRecord - a postprocessing function, gets called after recording. Is passed the array + * of scopes recorded and should return the array scopes to save to the fixture + * @param {function} recorder - custom options to pass to the recorder + * + */ + function Back(fixtureName, options, nockedFn) { + if (!Back.fixtures) { + throw new Error( + "Back requires nock.back.fixtures to be set\n" + + "Ex:\n" + + "\trequire(nock).back.fixtures = '/path/to/fixtures/'" + ); + } + + if (typeof fixtureName !== "string") { + throw new Error("Parameter fixtureName must be a string"); + } + + if (arguments.length === 1) { + options = {}; + } else if (arguments.length === 2) { + // If 2nd parameter is a function then `options` has been omitted + // otherwise `options` haven't been omitted but `nockedFn` was. + if (typeof options === "function") { + nockedFn = options; + options = {}; + } + } + + _mode.setup(); + + const fixture = path.join(Back.fixtures, fixtureName); + const context = _mode.start(fixture, options); + + const nockDone = function () { + _mode.finish(fixture, options, context); + }; + + debug("context:", context); + + // If nockedFn is a function then invoke it, otherwise return a promise resolving to nockDone. + if (typeof nockedFn === "function") { + nockedFn.call(context, nockDone); } else { - req = overriddenRequest(options, callback) + return Promise.resolve({ nockDone, context }); } - globalEmitter.emit('no match', req) - return req } - // NOTE: Since we already overrode the http.ClientRequest we are in fact constructing - // our own OverriddenClientRequest. - return new http.ClientRequest(options, callback) - } else { - globalEmitter.emit('no match', options) - if (isOff() || isEnabledForNetConnect(options)) { - return overriddenRequest(options, callback) - } else { - const error = new NetConnectNotAllowedError(options.host, options.path) - return new ErroringClientRequest(error) - } - } - }) + /******************************************************************************* + * Modes * + *******************************************************************************/ - overrideClientRequest() -} + const wild = { + setup: function () { + cleanAll(); + recorder.restore(); + activate(); + enableNetConnect(); + }, -module.exports = { - addInterceptor, - remove, - removeAll, - removeInterceptor, - isOn, - activate, - isActive, - isDone, - pendingMocks, - activeMocks, - enableNetConnect, - disableNetConnect, - restoreOverriddenClientRequest, - abortPendingRequests: common.removeAllTimers, -} + start: function () { + return load(); // don't load anything but get correct context + }, + finish: function () { + // nothing to do + }, + }; -/***/ }), + const dryrun = { + setup: function () { + recorder.restore(); + cleanAll(); + activate(); + // We have to explicitly enable net connectivity as by default it's off. + enableNetConnect(); + }, -/***/ 4694: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + start: function (fixture, options) { + const contexts = load(fixture, options); -"use strict"; + enableNetConnect(); + return contexts; + }, + finish: function () { + // nothing to do + }, + }; -const debug = __nccwpck_require__(8237)('nock.request_overrider') -const { - IncomingMessage, - ClientRequest, - request: originalHttpRequest, -} = __nccwpck_require__(3685) -const { request: originalHttpsRequest } = __nccwpck_require__(5687) -const propagate = __nccwpck_require__(9577) -const common = __nccwpck_require__(1521) -const globalEmitter = __nccwpck_require__(9935) -const Socket = __nccwpck_require__(5676) -const { playbackInterceptor } = __nccwpck_require__(6523) + const record = { + setup: function () { + recorder.restore(); + recorder.clear(); + cleanAll(); + activate(); + disableNetConnect(); + }, -function socketOnClose(req) { - debug('socket close') + start: function (fixture, options) { + if (!fs) { + throw new Error("no fs"); + } + const context = load(fixture, options); - if (!req.res && !req.socket._hadError) { - // If we don't have a response then we know that the socket - // ended prematurely and we need to emit an error on the request. - req.socket._hadError = true - const err = new Error('socket hang up') - err.code = 'ECONNRESET' - req.emit('error', err) - } - req.emit('close') -} + if (!context.isLoaded) { + recorder.record({ + dont_print: true, + output_objects: true, + ...options.recorder, + }); -/** - * Given a group of interceptors, appropriately route an outgoing request. - * Identify which interceptor ought to respond, if any, then delegate to - * `playbackInterceptor()` to consume the request itself. - */ -class InterceptedRequestRouter { - constructor({ req, options, interceptors }) { - this.req = req - this.options = { - // We may be changing the options object and we don't want those changes - // affecting the user so we use a clone of the object. - ...options, - // We use lower-case header field names throughout Nock. - headers: common.headersFieldNamesToLowerCase( - options.headers || {}, - false, - ), - } - this.interceptors = interceptors + context.isRecording = true; + } - this.socket = new Socket(options) + return context; + }, - // support setting `timeout` using request `options` - // https://nodejs.org/docs/latest-v12.x/api/http.html#http_http_request_url_options_callback - // any timeout in the request options override any timeout in the agent options. - // per https://github.com/nodejs/node/pull/21204 - const timeout = - options.timeout || - (options.agent && options.agent.options && options.agent.options.timeout) + finish: function (fixture, options, context) { + if (context.isRecording) { + let outputs = recorder.outputs(); - if (timeout) { - this.socket.setTimeout(timeout) - } + if (typeof options.afterRecord === "function") { + outputs = options.afterRecord(outputs); + } - this.response = new IncomingMessage(this.socket) - this.requestBodyBuffers = [] - this.playbackStarted = false + outputs = + typeof outputs === "string" + ? outputs + : JSON.stringify(outputs, null, 4); + debug("recorder outputs:", outputs); - // For parity with Node, it's important the socket event is emitted before we begin playback. - // This flag is set when playback is triggered if we haven't yet gotten the - // socket event to indicate that playback should start as soon as it comes in. - this.readyToStartPlaybackOnSocketEvent = false + fs.mkdirSync(path.dirname(fixture), { recursive: true }); + fs.writeFileSync(fixture, outputs); + } + }, + }; - this.attachToReq() + const update = { + setup: function () { + recorder.restore(); + recorder.clear(); + cleanAll(); + activate(); + disableNetConnect(); + }, - // Emit a fake socket event on the next tick to mimic what would happen on a real request. - // Some clients listen for a 'socket' event to be emitted before calling end(), - // which causes Nock to hang. - process.nextTick(() => this.connectSocket()) - } + start: function (fixture, options) { + if (!fs) { + throw new Error("no fs"); + } + const context = removeFixture(fixture); + recorder.record({ + dont_print: true, + output_objects: true, + ...options.recorder, + }); - attachToReq() { - const { req, options } = this + context.isRecording = true; - for (const [name, val] of Object.entries(options.headers)) { - req.setHeader(name.toLowerCase(), val) - } + return context; + }, - if (options.auth && !options.headers.authorization) { - req.setHeader( - // We use lower-case header field names throughout Nock. - 'authorization', - `Basic ${Buffer.from(options.auth).toString('base64')}`, - ) - } + finish: function (fixture, options, context) { + let outputs = recorder.outputs(); - req.path = options.path - req.method = options.method + if (typeof options.afterRecord === "function") { + outputs = options.afterRecord(outputs); + } - req.write = (...args) => this.handleWrite(...args) - req.end = (...args) => this.handleEnd(...args) - req.flushHeaders = (...args) => this.handleFlushHeaders(...args) + outputs = + typeof outputs === "string" + ? outputs + : JSON.stringify(outputs, null, 4); + debug("recorder outputs:", outputs); - // https://github.com/nock/nock/issues/256 - if (options.headers.expect === '100-continue') { - common.setImmediate(() => { - debug('continue') - req.emit('continue') - }) - } - } + fs.mkdirSync(path.dirname(fixture), { recursive: true }); + fs.writeFileSync(fixture, outputs); + }, + }; - connectSocket() { - const { req, socket } = this + const lockdown = { + setup: function () { + recorder.restore(); + recorder.clear(); + cleanAll(); + activate(); + disableNetConnect(); + }, - if (common.isRequestDestroyed(req)) { - return - } + start: function (fixture, options) { + return load(fixture, options); + }, - // ClientRequest.connection is an alias for ClientRequest.socket - // https://nodejs.org/api/http.html#http_request_socket - // https://github.com/nodejs/node/blob/b0f75818f39ed4e6bd80eb7c4010c1daf5823ef7/lib/_http_client.js#L640-L641 - // The same Socket is shared between the request and response to mimic native behavior. - req.socket = req.connection = socket + finish: function () { + // nothing to do + }, + }; - propagate(['error', 'timeout'], socket, req) - socket.on('close', () => socketOnClose(req)) + function load(fixture, options) { + const context = { + scopes: [], + assertScopesFinished: function () { + assertScopes(this.scopes, fixture); + }, + query: function () { + const nested = this.scopes.map((scope) => + scope.interceptors.map((interceptor) => ({ + method: interceptor.method, + uri: interceptor.uri, + basePath: interceptor.basePath, + path: interceptor.path, + queries: interceptor.queries, + counter: interceptor.counter, + body: interceptor.body, + statusCode: interceptor.statusCode, + optional: interceptor.optional, + })) + ); - socket.connecting = false - req.emit('socket', socket) + return [].concat.apply([], nested); + }, + }; - // https://nodejs.org/api/net.html#net_event_connect - socket.emit('connect') + if (fixture && fixtureExists(fixture)) { + let scopes = loadDefs(fixture); + applyHook(scopes, options.before); - // https://nodejs.org/api/tls.html#tls_event_secureconnect - if (socket.authorized) { - socket.emit('secureConnect') - } + scopes = define(scopes); + applyHook(scopes, options.after); - if (this.readyToStartPlaybackOnSocketEvent) { - this.maybeStartPlayback() - } - } - - // from docs: When write function is called with empty string or buffer, it does nothing and waits for more input. - // However, actually implementation checks the state of finished and aborted before checking if the first arg is empty. - handleWrite(...args) { - debug('request write') - - let [buffer, encoding] = args - - const { req } = this - - if (req.finished) { - const err = new Error('write after end') - err.code = 'ERR_STREAM_WRITE_AFTER_END' - process.nextTick(() => req.emit('error', err)) - - // It seems odd to return `true` here, not sure why you'd want to have - // the stream potentially written to more, but it's what Node does. - // https://github.com/nodejs/node/blob/a9270dcbeba4316b1e179b77ecb6c46af5aa8c20/lib/_http_outgoing.js#L662-L665 - return true - } - - if (req.socket && req.socket.destroyed) { - return false - } - - if (!buffer) { - return true - } - - if (!Buffer.isBuffer(buffer)) { - buffer = Buffer.from(buffer, encoding) - } - this.requestBodyBuffers.push(buffer) - - // writable.write encoding param is optional - // so if callback is present it's the last argument - const callback = args.length > 1 ? args[args.length - 1] : undefined - // can't use instanceof Function because some test runners - // run tests in vm.runInNewContext where Function is not same - // as that in the current context - // https://github.com/nock/nock/pull/1754#issuecomment-571531407 - if (typeof callback === 'function') { - callback() - } - - common.setImmediate(function () { - req.emit('drain') - }) - - return false - } - - handleEnd(chunk, encoding, callback) { - debug('request end') - const { req } = this - - // handle the different overloaded arg signatures - if (typeof chunk === 'function') { - callback = chunk - chunk = null - } else if (typeof encoding === 'function') { - callback = encoding - encoding = null - } - - if (typeof callback === 'function') { - req.once('finish', callback) - } - - if (chunk) { - req.write(chunk, encoding) - } - req.finished = true - this.maybeStartPlayback() - - return req - } - - handleFlushHeaders() { - debug('request flushHeaders') - this.maybeStartPlayback() - } - - /** - * Set request headers of the given request. This is needed both during the - * routing phase, in case header filters were specified, and during the - * interceptor-playback phase, to correctly pass mocked request headers. - * TODO There are some problems with this; see https://github.com/nock/nock/issues/1718 - */ - setHostHeaderUsingInterceptor(interceptor) { - const { req, options } = this - - // If a filtered scope is being used we have to use scope's host in the - // header, otherwise 'host' header won't match. - // NOTE: We use lower-case header field names throughout Nock. - const HOST_HEADER = 'host' - if (interceptor.__nock_filteredScope && interceptor.__nock_scopeHost) { - options.headers[HOST_HEADER] = interceptor.__nock_scopeHost - req.setHeader(HOST_HEADER, interceptor.__nock_scopeHost) - } else { - // For all other cases, we always add host header equal to the requested - // host unless it was already defined. - if (options.host && !req.getHeader(HOST_HEADER)) { - let hostHeader = options.host - - if (options.port === 80 || options.port === 443) { - hostHeader = hostHeader.split(':')[0] + context.scopes = scopes; + context.isLoaded = true; } - req.setHeader(HOST_HEADER, hostHeader) + return context; } - } - } - maybeStartPlayback() { - const { req, socket, playbackStarted } = this + function removeFixture(fixture, options) { + const context = { + scopes: [], + assertScopesFinished: function () {}, + }; - // In order to get the events in the right order we need to delay playback - // if we get here before the `socket` event is emitted. - if (socket.connecting) { - this.readyToStartPlaybackOnSocketEvent = true - return - } + if (fixture && fixtureExists(fixture)) { + /* istanbul ignore next - fs.unlinkSync is for node 10 support */ + fs.rmSync ? fs.rmSync(fixture) : fs.unlinkSync(fixture); + } + context.isLoaded = false; + return context; + } - if (!common.isRequestDestroyed(req) && !playbackStarted) { - this.startPlayback() - } - } + function applyHook(scopes, fn) { + if (!fn) { + return; + } - startPlayback() { - debug('ending') - this.playbackStarted = true + if (typeof fn !== "function") { + throw new Error("processing hooks must be a function"); + } - const { req, response, socket, options, interceptors } = this + scopes.forEach(fn); + } - Object.assign(options, { - // Re-update `options` with the current value of `req.path` because badly - // behaving agents like superagent like to change `req.path` mid-flight. - path: req.path, - // Similarly, node-http-proxy will modify headers in flight, so we have - // to put the headers back into options. - // https://github.com/nock/nock/pull/1484 - headers: req.getHeaders(), - // Fixes https://github.com/nock/nock/issues/976 - protocol: `${options.proto}:`, - }) + function fixtureExists(fixture) { + if (!fs) { + throw new Error("no fs"); + } - interceptors.forEach(interceptor => { - this.setHostHeaderUsingInterceptor(interceptor) - }) + return fs.existsSync(fixture); + } - const requestBodyBuffer = Buffer.concat(this.requestBodyBuffers) - // When request body is a binary buffer we internally use in its hexadecimal - // representation. - const requestBodyIsUtf8Representable = - common.isUtf8Representable(requestBodyBuffer) - const requestBodyString = requestBodyBuffer.toString( - requestBodyIsUtf8Representable ? 'utf8' : 'hex', - ) + function assertScopes(scopes, fixture) { + const pending = scopes + .filter((scope) => !scope.isDone()) + .map((scope) => scope.pendingMocks()); - const matchedInterceptor = interceptors.find(i => - i.match(req, options, requestBodyString), - ) + if (pending.length) { + assert.fail( + format( + "%j was not used, consider removing %s to rerecord fixture", + [].concat(...pending), + fixture + ) + ); + } + } - if (matchedInterceptor) { - matchedInterceptor.scope.logger( - 'interceptor identified, starting mocking', - ) + const Modes = { + wild, // all requests go out to the internet, dont replay anything, doesnt record anything - matchedInterceptor.markConsumed() + dryrun, // use recorded nocks, allow http calls, doesnt record anything, useful for writing new tests (default) - // wait to emit the finish event until we know for sure an Interceptor is going to playback. - // otherwise an unmocked request might emit finish twice. - req.emit('finish') + record, // use recorded nocks, record new nocks - playbackInterceptor({ + update, // allow http calls, record all nocks, don't use recorded nocks + + lockdown, // use recorded nocks, disables all http calls even when not nocked, doesnt record + }; + + Back.setMode = function (mode) { + if (!(mode in Modes)) { + throw new Error(`Unknown mode: ${mode}`); + } + + Back.currentMode = mode; + debug("New nock back mode:", Back.currentMode); + + _mode = Modes[mode]; + _mode.setup(); + }; + + Back.fixtures = null; + Back.currentMode = null; + + module.exports = Back; + + /***/ + }, + + /***/ 1521: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const debug = __nccwpck_require__(8237)("nock.common"); + const timers = __nccwpck_require__(9512); + const url = __nccwpck_require__(7310); + const util = __nccwpck_require__(3837); + + /** + * Normalizes the request options so that it always has `host` property. + * + * @param {Object} options - a parsed options object of the request + */ + function normalizeRequestOptions(options) { + options.proto = options.proto || "http"; + options.port = options.port || (options.proto === "http" ? 80 : 443); + if (options.host) { + debug("options.host:", options.host); + if (!options.hostname) { + if (options.host.split(":").length === 2) { + options.hostname = options.host.split(":")[0]; + } else { + options.hostname = options.host; + } + } + } + debug("options.hostname in the end: %j", options.hostname); + options.host = `${options.hostname || "localhost"}:${options.port}`; + debug("options.host in the end: %j", options.host); + + /// lowercase host names + ["hostname", "host"].forEach(function (attr) { + if (options[attr]) { + options[attr] = options[attr].toLowerCase(); + } + }); + + return options; + } + + /** + * Returns true if the data contained in buffer can be reconstructed + * from its utf8 representation. + * + * @param {Object} buffer - a Buffer object + * @returns {boolean} + */ + function isUtf8Representable(buffer) { + const utfEncodedBuffer = buffer.toString("utf8"); + const reconstructedBuffer = Buffer.from(utfEncodedBuffer, "utf8"); + return reconstructedBuffer.equals(buffer); + } + + // Array where all information about all the overridden requests are held. + let requestOverrides = {}; + + /** + * Overrides the current `request` function of `http` and `https` modules with + * our own version which intercepts issues HTTP/HTTPS requests and forwards them + * to the given `newRequest` function. + * + * @param {Function} newRequest - a function handling requests; it accepts four arguments: + * - proto - a string with the overridden module's protocol name (either `http` or `https`) + * - overriddenRequest - the overridden module's request function already bound to module's object + * - options - the options of the issued request + * - callback - the callback of the issued request + */ + function overrideRequests(newRequest) { + debug("overriding requests"); + ["http", "https"].forEach(function (proto) { + debug("- overriding request for", proto); + + const moduleName = proto; // 1 to 1 match of protocol and module is fortunate :) + const module = require(proto); + const overriddenRequest = module.request; + const overriddenGet = module.get; + + if (requestOverrides[moduleName]) { + throw new Error( + `Module's request already overridden for ${moduleName} protocol.` + ); + } + + // Store the properties of the overridden request so that it can be restored later on. + requestOverrides[moduleName] = { + module, + request: overriddenRequest, + get: overriddenGet, + }; + // https://nodejs.org/api/http.html#http_http_request_url_options_callback + module.request = function (input, options, callback) { + return newRequest(proto, overriddenRequest.bind(module), [ + input, + options, + callback, + ]); + }; + // https://nodejs.org/api/http.html#http_http_get_options_callback + module.get = function (input, options, callback) { + const req = newRequest(proto, overriddenGet.bind(module), [ + input, + options, + callback, + ]); + req.end(); + return req; + }; + + debug("- overridden request for", proto); + }); + } + + /** + * Restores `request` function of `http` and `https` modules to values they + * held before they were overridden by us. + */ + function restoreOverriddenRequests() { + debug("restoring requests"); + Object.entries(requestOverrides).forEach( + ([proto, { module, request, get }]) => { + debug("- restoring request for", proto); + module.request = request; + module.get = get; + debug("- restored request for", proto); + } + ); + requestOverrides = {}; + } + + /** + * In WHATWG URL vernacular, this returns the origin portion of a URL. + * However, the port is not included if it's standard and not already present on the host. + */ + function normalizeOrigin(proto, host, port) { + const hostHasPort = host.includes(":"); + const portIsStandard = + (proto === "http" && (port === 80 || port === "80")) || + (proto === "https" && (port === 443 || port === "443")); + const portStr = hostHasPort || portIsStandard ? "" : `:${port}`; + + return `${proto}://${host}${portStr}`; + } + + /** + * Get high level information about request as string + * @param {Object} options + * @param {string} options.method + * @param {number|string} options.port + * @param {string} options.proto Set internally. always http or https + * @param {string} options.hostname + * @param {string} options.path + * @param {Object} options.headers + * @param {string} body + * @return {string} + */ + function stringifyRequest(options, body) { + const { method = "GET", path = "", port } = options; + const origin = normalizeOrigin(options.proto, options.hostname, port); + + const log = { + method, + url: `${origin}${path}`, + headers: options.headers, + }; + + if (body) { + log.body = body; + } + + return JSON.stringify(log, null, 2); + } + + function isContentEncoded(headers) { + const contentEncoding = headers["content-encoding"]; + return typeof contentEncoding === "string" && contentEncoding !== ""; + } + + function contentEncoding(headers, encoder) { + const contentEncoding = headers["content-encoding"]; + return ( + contentEncoding !== undefined && + contentEncoding.toString() === encoder + ); + } + + function isJSONContent(headers) { + // https://tools.ietf.org/html/rfc8259 + const contentType = String(headers["content-type"] || "").toLowerCase(); + return contentType.startsWith("application/json"); + } + + /** + * Return a new object with all field names of the headers lower-cased. + * + * Duplicates throw an error. + */ + function headersFieldNamesToLowerCase(headers, throwOnDuplicate) { + if (!isPlainObject(headers)) { + throw Error("Headers must be provided as an object"); + } + + const lowerCaseHeaders = {}; + Object.entries(headers).forEach(([fieldName, fieldValue]) => { + const key = fieldName.toLowerCase(); + if (lowerCaseHeaders[key] !== undefined) { + if (throwOnDuplicate) { + throw Error( + `Failed to convert header keys to lower case due to field name conflict: ${key}` + ); + } else { + debug( + `Duplicate header provided in request: ${key}. Only the last value can be matched.` + ); + } + } + lowerCaseHeaders[key] = fieldValue; + }); + + return lowerCaseHeaders; + } + + const headersFieldsArrayToLowerCase = (headers) => [ + ...new Set(headers.map((fieldName) => fieldName.toLowerCase())), + ]; + + /** + * Converts the various accepted formats of headers into a flat array representing "raw headers". + * + * Nock allows headers to be provided as a raw array, a plain object, or a Map. + * + * While all the header names are expected to be strings, the values are left intact as they can + * be functions, strings, or arrays of strings. + * + * https://nodejs.org/api/http.html#http_message_rawheaders + */ + function headersInputToRawArray(headers) { + if (headers === undefined) { + return []; + } + + if (Array.isArray(headers)) { + // If the input is an array, assume it's already in the raw format and simply return a copy + // but throw an error if there aren't an even number of items in the array + if (headers.length % 2) { + throw new Error( + `Raw headers must be provided as an array with an even number of items. [fieldName, value, ...]` + ); + } + return [...headers]; + } + + // [].concat(...) is used instead of Array.flat until v11 is the minimum Node version + if (util.types.isMap(headers)) { + return [].concat( + ...Array.from(headers, ([k, v]) => [k.toString(), v]) + ); + } + + if (isPlainObject(headers)) { + return [].concat(...Object.entries(headers)); + } + + throw new Error( + `Headers must be provided as an array of raw values, a Map, or a plain Object. ${headers}` + ); + } + + /** + * Converts an array of raw headers to an object, using the same rules as Nodes `http.IncomingMessage.headers`. + * + * Header names/keys are lower-cased. + */ + function headersArrayToObject(rawHeaders) { + if (!Array.isArray(rawHeaders)) { + throw Error("Expected a header array"); + } + + const accumulator = {}; + + forEachHeader(rawHeaders, (value, fieldName) => { + addHeaderLine(accumulator, fieldName, value); + }); + + return accumulator; + } + + const noDuplicatesHeaders = new Set([ + "age", + "authorization", + "content-length", + "content-type", + "etag", + "expires", + "from", + "host", + "if-modified-since", + "if-unmodified-since", + "last-modified", + "location", + "max-forwards", + "proxy-authorization", + "referer", + "retry-after", + "user-agent", + ]); + + /** + * Set key/value data in accordance with Node's logic for folding duplicate headers. + * + * The `value` param should be a function, string, or array of strings. + * + * Node's docs and source: + * https://nodejs.org/api/http.html#http_message_headers + * https://github.com/nodejs/node/blob/908292cf1f551c614a733d858528ffb13fb3a524/lib/_http_incoming.js#L245 + * + * Header names are lower-cased. + * Duplicates in raw headers are handled in the following ways, depending on the header name: + * - Duplicates of field names listed in `noDuplicatesHeaders` (above) are discarded. + * - `set-cookie` is always an array. Duplicates are added to the array. + * - For duplicate `cookie` headers, the values are joined together with '; '. + * - For all other headers, the values are joined together with ', '. + * + * Node's implementation is larger because it highly optimizes for not having to call `toLowerCase()`. + * We've opted to always call `toLowerCase` in exchange for a more concise function. + * + * While Node has the luxury of knowing `value` is always a string, we do an extra step of coercion at the top. + */ + function addHeaderLine(headers, name, value) { + let values; // code below expects `values` to be an array of strings + if (typeof value === "function") { + // Function values are evaluated towards the end of the response, before that we use a placeholder + // string just to designate that the header exists. Useful when `Content-Type` is set with a function. + values = [value.name]; + } else if (Array.isArray(value)) { + values = value.map(String); + } else { + values = [String(value)]; + } + + const key = name.toLowerCase(); + if (key === "set-cookie") { + // Array header -- only Set-Cookie at the moment + if (headers["set-cookie"] === undefined) { + headers["set-cookie"] = values; + } else { + headers["set-cookie"].push(...values); + } + } else if (noDuplicatesHeaders.has(key)) { + if (headers[key] === undefined) { + // Drop duplicates + headers[key] = values[0]; + } + } else { + if (headers[key] !== undefined) { + values = [headers[key], ...values]; + } + + const separator = key === "cookie" ? "; " : ", "; + headers[key] = values.join(separator); + } + } + + /** + * Deletes the given `fieldName` property from `headers` object by performing + * case-insensitive search through keys. + * + * @headers {Object} headers - object of header field names and values + * @fieldName {String} field name - string with the case-insensitive field name + */ + function deleteHeadersField(headers, fieldNameToDelete) { + if (!isPlainObject(headers)) { + throw Error("headers must be an object"); + } + + if (typeof fieldNameToDelete !== "string") { + throw Error("field name must be a string"); + } + + const lowerCaseFieldNameToDelete = fieldNameToDelete.toLowerCase(); + + // Search through the headers and delete all values whose field name matches the given field name. + Object.keys(headers) + .filter( + (fieldName) => + fieldName.toLowerCase() === lowerCaseFieldNameToDelete + ) + .forEach((fieldName) => delete headers[fieldName]); + } + + /** + * Utility for iterating over a raw headers array. + * + * The callback is called with: + * - The header value. string, array of strings, or a function + * - The header field name. string + * - Index of the header field in the raw header array. + */ + function forEachHeader(rawHeaders, callback) { + for (let i = 0; i < rawHeaders.length; i += 2) { + callback(rawHeaders[i + 1], rawHeaders[i], i); + } + } + + function percentDecode(str) { + try { + return decodeURIComponent(str.replace(/\+/g, " ")); + } catch (e) { + return str; + } + } + + /** + * URI encode the provided string, stringently adhering to RFC 3986. + * + * RFC 3986 reserves !, ', (, ), and * but encodeURIComponent does not encode them so we do it manually. + * + * https://tools.ietf.org/html/rfc3986 + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent + */ + function percentEncode(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return `%${c.charCodeAt(0).toString(16).toUpperCase()}`; + }); + } + + function matchStringOrRegexp(target, pattern) { + const targetStr = + target === undefined || target === null ? "" : String(target); + + if (pattern instanceof RegExp) { + // if the regexp happens to have a global flag, we want to ensure we test the entire target + pattern.lastIndex = 0; + return pattern.test(targetStr); + } + return targetStr === String(pattern); + } + + /** + * Formats a query parameter. + * + * @param key The key of the query parameter to format. + * @param value The value of the query parameter to format. + * @param stringFormattingFn The function used to format string values. Can + * be used to encode or decode the query value. + * + * @returns *[] the formatted [key, value] pair. + */ + function formatQueryValue(key, value, stringFormattingFn) { + // TODO: Probably refactor code to replace `switch(true)` with `if`/`else`. + switch (true) { + case typeof value === "number": // fall-through + case typeof value === "boolean": + value = value.toString(); + break; + case value === null: + case value === undefined: + value = ""; + break; + case typeof value === "string": + if (stringFormattingFn) { + value = stringFormattingFn(value); + } + break; + case value instanceof RegExp: + break; + case Array.isArray(value): { + value = value.map(function (val, idx) { + return formatQueryValue(idx, val, stringFormattingFn)[1]; + }); + break; + } + case typeof value === "object": { + value = Object.entries(value).reduce(function ( + acc, + [subKey, subVal] + ) { + const subPair = formatQueryValue( + subKey, + subVal, + stringFormattingFn + ); + acc[subPair[0]] = subPair[1]; + + return acc; + }, + {}); + break; + } + } + + if (stringFormattingFn) key = stringFormattingFn(key); + return [key, value]; + } + + function isStream(obj) { + return ( + obj && + typeof obj !== "string" && + !Buffer.isBuffer(obj) && + typeof obj.setEncoding === "function" + ); + } + + /** + * Converts the arguments from the various signatures of http[s].request into a standard + * options object and an optional callback function. + * + * https://nodejs.org/api/http.html#http_http_request_url_options_callback + * + * Taken from the beginning of the native `ClientRequest`. + * https://github.com/nodejs/node/blob/908292cf1f551c614a733d858528ffb13fb3a524/lib/_http_client.js#L68 + */ + function normalizeClientRequestArgs(input, options, cb) { + if (typeof input === "string") { + input = urlToOptions(new url.URL(input)); + } else if (input instanceof url.URL) { + input = urlToOptions(input); + } else { + cb = options; + options = input; + input = null; + } + + if (typeof options === "function") { + cb = options; + options = input || {}; + } else { + options = Object.assign(input || {}, options); + } + + return { options, callback: cb }; + } + + /** + * Utility function that converts a URL object into an ordinary + * options object as expected by the http.request and https.request APIs. + * + * This was copied from Node's source + * https://github.com/nodejs/node/blob/908292cf1f551c614a733d858528ffb13fb3a524/lib/internal/url.js#L1257 + */ + function urlToOptions(url) { + const options = { + protocol: url.protocol, + hostname: + typeof url.hostname === "string" && url.hostname.startsWith("[") + ? url.hostname.slice(1, -1) + : url.hostname, + hash: url.hash, + search: url.search, + pathname: url.pathname, + path: `${url.pathname}${url.search || ""}`, + href: url.href, + }; + if (url.port !== "") { + options.port = Number(url.port); + } + if (url.username || url.password) { + options.auth = `${url.username}:${url.password}`; + } + return options; + } + + /** + * Determines if request data matches the expected schema. + * + * Used for comparing decoded search parameters, request body JSON objects, + * and URL decoded request form bodies. + * + * Performs a general recursive strict comparison with two caveats: + * - The expected data can use regexp to compare values + * - JSON path notation and nested objects are considered equal + */ + const dataEqual = (expected, actual) => { + if (isPlainObject(expected)) { + expected = expand(expected); + } + if (isPlainObject(actual)) { + actual = expand(actual); + } + return deepEqual(expected, actual); + }; + + /** + * Performs a recursive strict comparison between two values. + * + * Expected values or leaf nodes of expected object values that are RegExp use test() for comparison. + */ + function deepEqual(expected, actual) { + debug( + "deepEqual comparing", + typeof expected, + expected, + typeof actual, + actual + ); + if (expected instanceof RegExp) { + return expected.test(actual); + } + + if (Array.isArray(expected) && Array.isArray(actual)) { + if (expected.length !== actual.length) { + return false; + } + + return expected.every((expVal, idx) => + deepEqual(expVal, actual[idx]) + ); + } + + if (isPlainObject(expected) && isPlainObject(actual)) { + const allKeys = Array.from( + new Set(Object.keys(expected).concat(Object.keys(actual))) + ); + + return allKeys.every((key) => deepEqual(expected[key], actual[key])); + } + + return expected === actual; + } + + const timeouts = new Set(); + const immediates = new Set(); + + const wrapTimer = + (timer, ids) => + (callback, ...timerArgs) => { + const cb = (...callbackArgs) => { + try { + // eslint-disable-next-line n/no-callback-literal + callback(...callbackArgs); + } finally { + ids.delete(id); + } + }; + const id = timer(cb, ...timerArgs); + ids.add(id); + return id; + }; + + const setTimeout = wrapTimer(timers.setTimeout, timeouts); + const setImmediate = wrapTimer(timers.setImmediate, immediates); + + function clearTimer(clear, ids) { + ids.forEach(clear); + ids.clear(); + } + + function removeAllTimers() { + clearTimer(clearTimeout, timeouts); + clearTimer(clearImmediate, immediates); + } + + /** + * Check if the Client Request has been cancelled. + * + * Until Node 14 is the minimum, we need to look at both flags to see if the request has been cancelled. + * The two flags have the same purpose, but the Node maintainers are migrating from `abort(ed)` to + * `destroy(ed)` terminology, to be more consistent with `stream.Writable`. + * In Node 14.x+, Calling `abort()` will set both `aborted` and `destroyed` to true, however, + * calling `destroy()` will only set `destroyed` to true. + * Falling back on checking if the socket is destroyed to cover the case of Node <14.x where + * `destroy()` is called, but `destroyed` is undefined. + * + * Node Client Request history: + * - `request.abort()`: Added in: v0.3.8, Deprecated since: v14.1.0, v13.14.0 + * - `request.aborted`: Added in: v0.11.14, Became a boolean instead of a timestamp: v11.0.0, Not deprecated (yet) + * - `request.destroy()`: Added in: v0.3.0 + * - `request.destroyed`: Added in: v14.1.0, v13.14.0 + * + * @param {ClientRequest} req + * @returns {boolean} + */ + function isRequestDestroyed(req) { + return !!( + req.destroyed === true || + req.aborted || + (req.socket && req.socket.destroyed) + ); + } + + /** + * Returns true if the given value is a plain object and not an Array. + * @param {*} value + * @returns {boolean} + */ + function isPlainObject(value) { + if (typeof value !== "object" || value === null) return false; + + if (Object.prototype.toString.call(value) !== "[object Object]") + return false; + + const proto = Object.getPrototypeOf(value); + if (proto === null) return true; + + const Ctor = + Object.prototype.hasOwnProperty.call(proto, "constructor") && + proto.constructor; + return ( + typeof Ctor === "function" && + Ctor instanceof Ctor && + Function.prototype.call(Ctor) === Function.prototype.call(value) + ); + } + + const prototypePollutionBlockList = [ + "__proto__", + "prototype", + "constructor", + ]; + const blocklistFilter = function (part) { + return prototypePollutionBlockList.indexOf(part) === -1; + }; + + /** + * Converts flat objects whose keys use JSON path notation to nested objects. + * + * The input object is not mutated. + * + * @example + * { 'foo[bar][0]': 'baz' } -> { foo: { bar: [ 'baz' ] } } + */ + const expand = (input) => { + if (input === undefined || input === null) { + return input; + } + + const keys = Object.keys(input); + + const result = {}; + let resultPtr = result; + + for (let path of keys) { + const originalPath = path; + if (path.indexOf("[") >= 0) { + path = path.replace(/\[/g, ".").replace(/]/g, ""); + } + + const parts = path.split("."); + + const check = parts.filter(blocklistFilter); + + if (check.length !== parts.length) { + return undefined; + } + resultPtr = result; + const lastIndex = parts.length - 1; + + for (let i = 0; i < parts.length; ++i) { + const part = parts[i]; + if (i === lastIndex) { + if (Array.isArray(resultPtr)) { + resultPtr[+part] = input[originalPath]; + } else { + resultPtr[part] = input[originalPath]; + } + } else { + if (resultPtr[part] === undefined || resultPtr[part] === null) { + const nextPart = parts[i + 1]; + if (/^\d+$/.test(nextPart)) { + resultPtr[part] = []; + } else { + resultPtr[part] = {}; + } + } + resultPtr = resultPtr[part]; + } + } + } + return result; + }; + + module.exports = { + contentEncoding, + dataEqual, + deleteHeadersField, + expand, + forEachHeader, + formatQueryValue, + headersArrayToObject, + headersFieldNamesToLowerCase, + headersFieldsArrayToLowerCase, + headersInputToRawArray, + isContentEncoded, + isJSONContent, + isPlainObject, + isRequestDestroyed, + isStream, + isUtf8Representable, + matchStringOrRegexp, + normalizeClientRequestArgs, + normalizeOrigin, + normalizeRequestOptions, + overrideRequests, + percentDecode, + percentEncode, + removeAllTimers, + restoreOverriddenRequests, + setImmediate, + setTimeout, + stringifyRequest, + }; + + /***/ + }, + + /***/ 9935: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const { EventEmitter } = __nccwpck_require__(2361); + + module.exports = new EventEmitter(); + + /***/ + }, + + /***/ 7607: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + /** + * @module nock/intercept + */ + + const { InterceptedRequestRouter } = __nccwpck_require__(4694); + const common = __nccwpck_require__(1521); + const { inherits } = __nccwpck_require__(3837); + const http = __nccwpck_require__(3685); + const debug = __nccwpck_require__(8237)("nock.intercept"); + const globalEmitter = __nccwpck_require__(9935); + + /** + * @name NetConnectNotAllowedError + * @private + * @desc Error trying to make a connection when disabled external access. + * @class + * @example + * nock.disableNetConnect(); + * http.get('http://zombo.com'); + * // throw NetConnectNotAllowedError + */ + function NetConnectNotAllowedError(host, path) { + Error.call(this); + + this.name = "NetConnectNotAllowedError"; + this.code = "ENETUNREACH"; + this.message = `Nock: Disallowed net connect for "${host}${path}"`; + + Error.captureStackTrace(this, this.constructor); + } + + inherits(NetConnectNotAllowedError, Error); + + let allInterceptors = {}; + let allowNetConnect; + + /** + * Enabled real request. + * @public + * @param {String|RegExp} matcher=RegExp.new('.*') Expression to match + * @example + * // Enables all real requests + * nock.enableNetConnect(); + * @example + * // Enables real requests for url that matches google + * nock.enableNetConnect('google'); + * @example + * // Enables real requests for url that matches google and amazon + * nock.enableNetConnect(/(google|amazon)/); + * @example + * // Enables real requests for url that includes google + * nock.enableNetConnect(host => host.includes('google')); + */ + function enableNetConnect(matcher) { + if (typeof matcher === "string") { + allowNetConnect = new RegExp(matcher); + } else if (matcher instanceof RegExp) { + allowNetConnect = matcher; + } else if (typeof matcher === "function") { + allowNetConnect = { test: matcher }; + } else { + allowNetConnect = /.*/; + } + } + + function isEnabledForNetConnect(options) { + common.normalizeRequestOptions(options); + + const enabled = allowNetConnect && allowNetConnect.test(options.host); + debug("Net connect", enabled ? "" : "not", "enabled for", options.host); + return enabled; + } + + /** + * Disable all real requests. + * @public + * @example + * nock.disableNetConnect(); + */ + function disableNetConnect() { + allowNetConnect = undefined; + } + + function isOn() { + return !isOff(); + } + + function isOff() { + return process.env.NOCK_OFF === "true"; + } + + function addInterceptor(key, interceptor, scope, scopeOptions, host) { + if (!(key in allInterceptors)) { + allInterceptors[key] = { key, interceptors: [] }; + } + interceptor.__nock_scope = scope; + + // We need scope's key and scope options for scope filtering function (if defined) + interceptor.__nock_scopeKey = key; + interceptor.__nock_scopeOptions = scopeOptions; + // We need scope's host for setting correct request headers for filtered scopes. + interceptor.__nock_scopeHost = host; + interceptor.interceptionCounter = 0; + + if (scopeOptions.allowUnmocked) + allInterceptors[key].allowUnmocked = true; + + allInterceptors[key].interceptors.push(interceptor); + } + + function remove(interceptor) { + if ( + interceptor.__nock_scope.shouldPersist() || + --interceptor.counter > 0 + ) { + return; + } + + const { basePath } = interceptor; + const interceptors = + (allInterceptors[basePath] && + allInterceptors[basePath].interceptors) || + []; + + // TODO: There is a clearer way to write that we want to delete the first + // matching instance. I'm also not sure why we couldn't delete _all_ + // matching instances. + interceptors.some(function (thisInterceptor, i) { + return thisInterceptor === interceptor + ? interceptors.splice(i, 1) + : false; + }); + } + + function removeAll() { + Object.keys(allInterceptors).forEach(function (key) { + allInterceptors[key].interceptors.forEach(function (interceptor) { + interceptor.scope.keyedInterceptors = {}; + }); + }); + allInterceptors = {}; + } + + /** + * Return all the Interceptors whose Scopes match against the base path of the provided options. + * + * @returns {Interceptor[]} + */ + function interceptorsFor(options) { + common.normalizeRequestOptions(options); + + debug("interceptors for %j", options.host); + + const basePath = `${options.proto}://${options.host}`; + + debug("filtering interceptors for basepath", basePath); + + // First try to use filteringScope if any of the interceptors has it defined. + for (const { key, interceptors, allowUnmocked } of Object.values( + allInterceptors + )) { + for (const interceptor of interceptors) { + const { filteringScope } = interceptor.__nock_scopeOptions; + + // If scope filtering function is defined and returns a truthy value then + // we have to treat this as a match. + if (filteringScope && filteringScope(basePath)) { + interceptor.scope.logger("found matching scope interceptor"); + + // Keep the filtered scope (its key) to signal the rest of the module + // that this wasn't an exact but filtered match. + interceptors.forEach((ic) => { + ic.__nock_filteredScope = ic.__nock_scopeKey; + }); + return interceptors; + } + } + + if (common.matchStringOrRegexp(basePath, key)) { + if (allowUnmocked && interceptors.length === 0) { + debug( + "matched base path with allowUnmocked (no matching interceptors)" + ); + return [ + { + options: { allowUnmocked: true }, + matchOrigin() { + return false; + }, + }, + ]; + } else { + debug( + `matched base path (${interceptors.length} interceptor${ + interceptors.length > 1 ? "s" : "" + })` + ); + return interceptors; + } + } + } + + return undefined; + } + + function removeInterceptor(options) { + // Lazily import to avoid circular imports. + const Interceptor = __nccwpck_require__(5419); + + let baseUrl, key, method, proto; + if (options instanceof Interceptor) { + baseUrl = options.basePath; + key = options._key; + } else { + proto = options.proto ? options.proto : "http"; + + common.normalizeRequestOptions(options); + baseUrl = `${proto}://${options.host}`; + method = (options.method && options.method.toUpperCase()) || "GET"; + key = `${method} ${baseUrl}${options.path || "/"}`; + } + + if ( + allInterceptors[baseUrl] && + allInterceptors[baseUrl].interceptors.length > 0 + ) { + for ( + let i = 0; + i < allInterceptors[baseUrl].interceptors.length; + i++ + ) { + const interceptor = allInterceptors[baseUrl].interceptors[i]; + if ( + options instanceof Interceptor + ? interceptor === options + : interceptor._key === key + ) { + allInterceptors[baseUrl].interceptors.splice(i, 1); + interceptor.scope.remove(key, interceptor); + break; + } + } + + return true; + } + + return false; + } + // Variable where we keep the ClientRequest we have overridden + // (which might or might not be node's original http.ClientRequest) + let originalClientRequest; + + function ErroringClientRequest(error) { + http.OutgoingMessage.call(this); + process.nextTick( + function () { + this.emit("error", error); + }.bind(this) + ); + } + + inherits(ErroringClientRequest, http.ClientRequest); + + function overrideClientRequest() { + // Here's some background discussion about overriding ClientRequest: + // - https://github.com/nodejitsu/mock-request/issues/4 + // - https://github.com/nock/nock/issues/26 + // It would be good to add a comment that explains this more clearly. + debug("Overriding ClientRequest"); + + // ----- Extending http.ClientRequest + + // Define the overriding client request that nock uses internally. + function OverriddenClientRequest(...args) { + const { options, callback } = common.normalizeClientRequestArgs( + ...args + ); + + if (Object.keys(options).length === 0) { + // As weird as it is, it's possible to call `http.request` without + // options, and it makes a request to localhost or somesuch. We should + // support it too, for parity. However it doesn't work today, and fixing + // it seems low priority. Giving an explicit error is nicer than + // crashing with a weird stack trace. `http[s].request()`, nock's other + // client-facing entry point, makes a similar check. + // https://github.com/nock/nock/pull/1386 + // https://github.com/nock/nock/pull/1440 + throw Error( + "Creating a ClientRequest with empty `options` is not supported in Nock" + ); + } + + http.OutgoingMessage.call(this); + + // Filter the interceptors per request options. + const interceptors = interceptorsFor(options); + + if (isOn() && interceptors) { + debug("using", interceptors.length, "interceptors"); + + // Use filtered interceptors to intercept requests. + // TODO: this shouldn't be a class anymore + // the overrider explicitly overrides methods and attrs on the request so the `assign` below should be removed. + const overrider = new InterceptedRequestRouter({ + req: this, + options, + interceptors, + }); + Object.assign(this, overrider); + + if (callback) { + this.once("response", callback); + } + } else { + debug("falling back to original ClientRequest"); + + // Fallback to original ClientRequest if nock is off or the net connection is enabled. + if (isOff() || isEnabledForNetConnect(options)) { + originalClientRequest.apply(this, arguments); + } else { + common.setImmediate( + function () { + const error = new NetConnectNotAllowedError( + options.host, + options.path + ); + this.emit("error", error); + }.bind(this) + ); + } + } + } + inherits(OverriddenClientRequest, http.ClientRequest); + + // Override the http module's request but keep the original so that we can use it and later restore it. + // NOTE: We only override http.ClientRequest as https module also uses it. + originalClientRequest = http.ClientRequest; + http.ClientRequest = OverriddenClientRequest; + + debug("ClientRequest overridden"); + } + + function restoreOverriddenClientRequest() { + debug("restoring overridden ClientRequest"); + + // Restore the ClientRequest we have overridden. + if (!originalClientRequest) { + debug("- ClientRequest was not overridden"); + } else { + http.ClientRequest = originalClientRequest; + originalClientRequest = undefined; + + debug("- ClientRequest restored"); + } + } + + function isActive() { + // If ClientRequest has been overwritten by Nock then originalClientRequest is not undefined. + // This means that Nock has been activated. + return originalClientRequest !== undefined; + } + + function interceptorScopes() { + const nestedInterceptors = Object.values(allInterceptors).map( + (i) => i.interceptors + ); + const scopes = new Set( + [].concat(...nestedInterceptors).map((i) => i.scope) + ); + return [...scopes]; + } + + function isDone() { + return interceptorScopes().every((scope) => scope.isDone()); + } + + function pendingMocks() { + return [].concat( + ...interceptorScopes().map((scope) => scope.pendingMocks()) + ); + } + + function activeMocks() { + return [].concat( + ...interceptorScopes().map((scope) => scope.activeMocks()) + ); + } + + function activate() { + if (originalClientRequest) { + throw new Error("Nock already active"); + } + + // ----- Overriding http.request and https.request: + + common.overrideRequests(function (proto, overriddenRequest, args) { + // NOTE: overriddenRequest is already bound to its module. + + const { options, callback } = common.normalizeClientRequestArgs( + ...args + ); + + if (Object.keys(options).length === 0) { + // As weird as it is, it's possible to call `http.request` without + // options, and it makes a request to localhost or somesuch. We should + // support it too, for parity. However it doesn't work today, and fixing + // it seems low priority. Giving an explicit error is nicer than + // crashing with a weird stack trace. `new ClientRequest()`, nock's + // other client-facing entry point, makes a similar check. + // https://github.com/nock/nock/pull/1386 + // https://github.com/nock/nock/pull/1440 + throw Error( + "Making a request with empty `options` is not supported in Nock" + ); + } + + // The option per the docs is `protocol`. Its unclear if this line is meant to override that and is misspelled or if + // the intend is to explicitly keep track of which module was called using a separate name. + // Either way, `proto` is used as the source of truth from here on out. + options.proto = proto; + + const interceptors = interceptorsFor(options); + + if (isOn() && interceptors) { + const matches = interceptors.some((interceptor) => + interceptor.matchOrigin(options) + ); + const allowUnmocked = interceptors.some( + (interceptor) => interceptor.options.allowUnmocked + ); + + if (!matches && allowUnmocked) { + let req; + if (proto === "https") { + const { ClientRequest } = http; + http.ClientRequest = originalClientRequest; + req = overriddenRequest(options, callback); + http.ClientRequest = ClientRequest; + } else { + req = overriddenRequest(options, callback); + } + globalEmitter.emit("no match", req); + return req; + } + + // NOTE: Since we already overrode the http.ClientRequest we are in fact constructing + // our own OverriddenClientRequest. + return new http.ClientRequest(options, callback); + } else { + globalEmitter.emit("no match", options); + if (isOff() || isEnabledForNetConnect(options)) { + return overriddenRequest(options, callback); + } else { + const error = new NetConnectNotAllowedError( + options.host, + options.path + ); + return new ErroringClientRequest(error); + } + } + }); + + overrideClientRequest(); + } + + module.exports = { + addInterceptor, + remove, + removeAll, + removeInterceptor, + isOn, + activate, + isActive, + isDone, + pendingMocks, + activeMocks, + enableNetConnect, + disableNetConnect, + restoreOverriddenClientRequest, + abortPendingRequests: common.removeAllTimers, + }; + + /***/ + }, + + /***/ 4694: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const debug = __nccwpck_require__(8237)("nock.request_overrider"); + const { + IncomingMessage, + ClientRequest, + request: originalHttpRequest, + } = __nccwpck_require__(3685); + const { request: originalHttpsRequest } = __nccwpck_require__(5687); + const propagate = __nccwpck_require__(9577); + const common = __nccwpck_require__(1521); + const globalEmitter = __nccwpck_require__(9935); + const Socket = __nccwpck_require__(5676); + const { playbackInterceptor } = __nccwpck_require__(6523); + + function socketOnClose(req) { + debug("socket close"); + + if (!req.res && !req.socket._hadError) { + // If we don't have a response then we know that the socket + // ended prematurely and we need to emit an error on the request. + req.socket._hadError = true; + const err = new Error("socket hang up"); + err.code = "ECONNRESET"; + req.emit("error", err); + } + req.emit("close"); + } + + /** + * Given a group of interceptors, appropriately route an outgoing request. + * Identify which interceptor ought to respond, if any, then delegate to + * `playbackInterceptor()` to consume the request itself. + */ + class InterceptedRequestRouter { + constructor({ req, options, interceptors }) { + this.req = req; + this.options = { + // We may be changing the options object and we don't want those changes + // affecting the user so we use a clone of the object. + ...options, + // We use lower-case header field names throughout Nock. + headers: common.headersFieldNamesToLowerCase( + options.headers || {}, + false + ), + }; + this.interceptors = interceptors; + + this.socket = new Socket(options); + + // support setting `timeout` using request `options` + // https://nodejs.org/docs/latest-v12.x/api/http.html#http_http_request_url_options_callback + // any timeout in the request options override any timeout in the agent options. + // per https://github.com/nodejs/node/pull/21204 + const timeout = + options.timeout || + (options.agent && + options.agent.options && + options.agent.options.timeout); + + if (timeout) { + this.socket.setTimeout(timeout); + } + + this.response = new IncomingMessage(this.socket); + this.requestBodyBuffers = []; + this.playbackStarted = false; + + // For parity with Node, it's important the socket event is emitted before we begin playback. + // This flag is set when playback is triggered if we haven't yet gotten the + // socket event to indicate that playback should start as soon as it comes in. + this.readyToStartPlaybackOnSocketEvent = false; + + this.attachToReq(); + + // Emit a fake socket event on the next tick to mimic what would happen on a real request. + // Some clients listen for a 'socket' event to be emitted before calling end(), + // which causes Nock to hang. + process.nextTick(() => this.connectSocket()); + } + + attachToReq() { + const { req, options } = this; + + for (const [name, val] of Object.entries(options.headers)) { + req.setHeader(name.toLowerCase(), val); + } + + if (options.auth && !options.headers.authorization) { + req.setHeader( + // We use lower-case header field names throughout Nock. + "authorization", + `Basic ${Buffer.from(options.auth).toString("base64")}` + ); + } + + req.path = options.path; + req.method = options.method; + + req.write = (...args) => this.handleWrite(...args); + req.end = (...args) => this.handleEnd(...args); + req.flushHeaders = (...args) => this.handleFlushHeaders(...args); + + // https://github.com/nock/nock/issues/256 + if (options.headers.expect === "100-continue") { + common.setImmediate(() => { + debug("continue"); + req.emit("continue"); + }); + } + } + + connectSocket() { + const { req, socket } = this; + + if (common.isRequestDestroyed(req)) { + return; + } + + // ClientRequest.connection is an alias for ClientRequest.socket + // https://nodejs.org/api/http.html#http_request_socket + // https://github.com/nodejs/node/blob/b0f75818f39ed4e6bd80eb7c4010c1daf5823ef7/lib/_http_client.js#L640-L641 + // The same Socket is shared between the request and response to mimic native behavior. + req.socket = req.connection = socket; + + propagate(["error", "timeout"], socket, req); + socket.on("close", () => socketOnClose(req)); + + socket.connecting = false; + req.emit("socket", socket); + + // https://nodejs.org/api/net.html#net_event_connect + socket.emit("connect"); + + // https://nodejs.org/api/tls.html#tls_event_secureconnect + if (socket.authorized) { + socket.emit("secureConnect"); + } + + if (this.readyToStartPlaybackOnSocketEvent) { + this.maybeStartPlayback(); + } + } + + // from docs: When write function is called with empty string or buffer, it does nothing and waits for more input. + // However, actually implementation checks the state of finished and aborted before checking if the first arg is empty. + handleWrite(...args) { + debug("request write"); + + let [buffer, encoding] = args; + + const { req } = this; + + if (req.finished) { + const err = new Error("write after end"); + err.code = "ERR_STREAM_WRITE_AFTER_END"; + process.nextTick(() => req.emit("error", err)); + + // It seems odd to return `true` here, not sure why you'd want to have + // the stream potentially written to more, but it's what Node does. + // https://github.com/nodejs/node/blob/a9270dcbeba4316b1e179b77ecb6c46af5aa8c20/lib/_http_outgoing.js#L662-L665 + return true; + } + + if (req.socket && req.socket.destroyed) { + return false; + } + + if (!buffer) { + return true; + } + + if (!Buffer.isBuffer(buffer)) { + buffer = Buffer.from(buffer, encoding); + } + this.requestBodyBuffers.push(buffer); + + // writable.write encoding param is optional + // so if callback is present it's the last argument + const callback = args.length > 1 ? args[args.length - 1] : undefined; + // can't use instanceof Function because some test runners + // run tests in vm.runInNewContext where Function is not same + // as that in the current context + // https://github.com/nock/nock/pull/1754#issuecomment-571531407 + if (typeof callback === "function") { + callback(); + } + + common.setImmediate(function () { + req.emit("drain"); + }); + + return false; + } + + handleEnd(chunk, encoding, callback) { + debug("request end"); + const { req } = this; + + // handle the different overloaded arg signatures + if (typeof chunk === "function") { + callback = chunk; + chunk = null; + } else if (typeof encoding === "function") { + callback = encoding; + encoding = null; + } + + if (typeof callback === "function") { + req.once("finish", callback); + } + + if (chunk) { + req.write(chunk, encoding); + } + req.finished = true; + this.maybeStartPlayback(); + + return req; + } + + handleFlushHeaders() { + debug("request flushHeaders"); + this.maybeStartPlayback(); + } + + /** + * Set request headers of the given request. This is needed both during the + * routing phase, in case header filters were specified, and during the + * interceptor-playback phase, to correctly pass mocked request headers. + * TODO There are some problems with this; see https://github.com/nock/nock/issues/1718 + */ + setHostHeaderUsingInterceptor(interceptor) { + const { req, options } = this; + + // If a filtered scope is being used we have to use scope's host in the + // header, otherwise 'host' header won't match. + // NOTE: We use lower-case header field names throughout Nock. + const HOST_HEADER = "host"; + if ( + interceptor.__nock_filteredScope && + interceptor.__nock_scopeHost + ) { + options.headers[HOST_HEADER] = interceptor.__nock_scopeHost; + req.setHeader(HOST_HEADER, interceptor.__nock_scopeHost); + } else { + // For all other cases, we always add host header equal to the requested + // host unless it was already defined. + if (options.host && !req.getHeader(HOST_HEADER)) { + let hostHeader = options.host; + + if (options.port === 80 || options.port === 443) { + hostHeader = hostHeader.split(":")[0]; + } + + req.setHeader(HOST_HEADER, hostHeader); + } + } + } + + maybeStartPlayback() { + const { req, socket, playbackStarted } = this; + + // In order to get the events in the right order we need to delay playback + // if we get here before the `socket` event is emitted. + if (socket.connecting) { + this.readyToStartPlaybackOnSocketEvent = true; + return; + } + + if (!common.isRequestDestroyed(req) && !playbackStarted) { + this.startPlayback(); + } + } + + startPlayback() { + debug("ending"); + this.playbackStarted = true; + + const { req, response, socket, options, interceptors } = this; + + Object.assign(options, { + // Re-update `options` with the current value of `req.path` because badly + // behaving agents like superagent like to change `req.path` mid-flight. + path: req.path, + // Similarly, node-http-proxy will modify headers in flight, so we have + // to put the headers back into options. + // https://github.com/nock/nock/pull/1484 + headers: req.getHeaders(), + // Fixes https://github.com/nock/nock/issues/976 + protocol: `${options.proto}:`, + }); + + interceptors.forEach((interceptor) => { + this.setHostHeaderUsingInterceptor(interceptor); + }); + + const requestBodyBuffer = Buffer.concat(this.requestBodyBuffers); + // When request body is a binary buffer we internally use in its hexadecimal + // representation. + const requestBodyIsUtf8Representable = + common.isUtf8Representable(requestBodyBuffer); + const requestBodyString = requestBodyBuffer.toString( + requestBodyIsUtf8Representable ? "utf8" : "hex" + ); + + const matchedInterceptor = interceptors.find((i) => + i.match(req, options, requestBodyString) + ); + + if (matchedInterceptor) { + matchedInterceptor.scope.logger( + "interceptor identified, starting mocking" + ); + + matchedInterceptor.markConsumed(); + + // wait to emit the finish event until we know for sure an Interceptor is going to playback. + // otherwise an unmocked request might emit finish twice. + req.emit("finish"); + + playbackInterceptor({ + req, + socket, + options, + requestBodyString, + requestBodyIsUtf8Representable, + response, + interceptor: matchedInterceptor, + }); + } else { + globalEmitter.emit("no match", req, options, requestBodyString); + + // Try to find a hostname match that allows unmocked. + const allowUnmocked = interceptors.some( + (i) => i.matchHostName(options) && i.options.allowUnmocked + ); + + if (allowUnmocked && req instanceof ClientRequest) { + const newReq = + options.proto === "https" + ? originalHttpsRequest(options) + : originalHttpRequest(options); + + propagate(newReq, req); + // We send the raw buffer as we received it, not as we interpreted it. + newReq.end(requestBodyBuffer); + } else { + const reqStr = common.stringifyRequest( + options, + requestBodyString + ); + const err = new Error(`Nock: No match for request ${reqStr}`); + err.code = "ERR_NOCK_NO_MATCH"; + err.statusCode = err.status = 404; + req.destroy(err); + } + } + } + } + + module.exports = { InterceptedRequestRouter }; + + /***/ + }, + + /***/ 5419: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const stringify = __nccwpck_require__(7073); + const querystring = __nccwpck_require__(3477); + const { URL, URLSearchParams } = __nccwpck_require__(7310); + + const common = __nccwpck_require__(1521); + const { remove } = __nccwpck_require__(7607); + const matchBody = __nccwpck_require__(3986); + + let fs; + try { + fs = __nccwpck_require__(7147); + } catch (err) { + // do nothing, we're in the browser + } + + module.exports = class Interceptor { + /** + * + * Valid argument types for `uri`: + * - A string used for strict comparisons with pathname. + * The search portion of the URI may also be postfixed, in which case the search params + * are striped and added via the `query` method. + * - A RegExp instance that tests against only the pathname of requests. + * - A synchronous function bound to this Interceptor instance. It's provided the pathname + * of requests and must return a boolean denoting if the request is considered a match. + */ + constructor(scope, uri, method, requestBody, interceptorOptions) { + const uriIsStr = typeof uri === "string"; + // Check for leading slash. Uri can be either a string or a regexp, but + // When enabled filteringScope ignores the passed URL entirely so we skip validation. + + if ( + uriIsStr && + !scope.scopeOptions.filteringScope && + !scope.basePathname && + !uri.startsWith("/") && + !uri.startsWith("*") + ) { + throw Error( + `Non-wildcard URL path strings must begin with a slash (otherwise they won't match anything) (got: ${uri})` + ); + } + + if (!method) { + throw new Error( + 'The "method" parameter is required for an intercept call.' + ); + } + + this.scope = scope; + this.interceptorMatchHeaders = []; + this.method = method.toUpperCase(); + this.uri = uri; + this._key = `${this.method} ${scope.basePath}${scope.basePathname}${ + uriIsStr ? "" : "/" + }${uri}`; + this.basePath = this.scope.basePath; + this.path = uriIsStr ? scope.basePathname + uri : uri; + this.queries = null; + + this.options = interceptorOptions || {}; + this.counter = 1; + this._requestBody = requestBody; + + // We use lower-case header field names throughout Nock. + this.reqheaders = common.headersFieldNamesToLowerCase( + scope.scopeOptions.reqheaders || {}, + true + ); + this.badheaders = common.headersFieldsArrayToLowerCase( + scope.scopeOptions.badheaders || [] + ); + + this.delayBodyInMs = 0; + this.delayConnectionInMs = 0; + + this.optional = false; + + // strip off literal query parameters if they were provided as part of the URI + if (uriIsStr && uri.includes("?")) { + // localhost is a dummy value because the URL constructor errors for only relative inputs + const parsedURL = new URL(this.path, "http://localhost"); + this.path = parsedURL.pathname; + this.query(parsedURL.searchParams); + this._key = `${this.method} ${scope.basePath}${this.path}`; + } + } + + optionally(flag = true) { + // The default behaviour of optionally() with no arguments is to make the mock optional. + if (typeof flag !== "boolean") { + throw new Error("Invalid arguments: argument should be a boolean"); + } + + this.optional = flag; + + return this; + } + + replyWithError(errorMessage) { + this.errorMessage = errorMessage; + + this.options = { + ...this.scope.scopeOptions, + ...this.options, + }; + + this.scope.add(this._key, this); + return this.scope; + } + + reply(statusCode, body, rawHeaders) { + // support the format of only passing in a callback + if (typeof statusCode === "function") { + if (arguments.length > 1) { + // It's not very Javascript-y to throw an error for extra args to a function, but because + // of legacy behavior, this error was added to reduce confusion for those migrating. + throw Error( + "Invalid arguments. When providing a function for the first argument, .reply does not accept other arguments." + ); + } + this.statusCode = null; + this.fullReplyFunction = statusCode; + } else { + if (statusCode !== undefined && !Number.isInteger(statusCode)) { + throw new Error( + `Invalid ${typeof statusCode} value for status code` + ); + } + + this.statusCode = statusCode || 200; + if (typeof body === "function") { + this.replyFunction = body; + body = null; + } + } + + this.options = { + ...this.scope.scopeOptions, + ...this.options, + }; + + this.rawHeaders = common.headersInputToRawArray(rawHeaders); + + if (this.scope.date) { + // https://tools.ietf.org/html/rfc7231#section-7.1.1.2 + this.rawHeaders.push("Date", this.scope.date.toUTCString()); + } + + // Prepare the headers temporarily so we can make best guesses about content-encoding and content-type + // below as well as while the response is being processed in RequestOverrider.end(). + // Including all the default headers is safe for our purposes because of the specific headers we introspect. + // A more thoughtful process is used to merge the default headers when the response headers are finally computed. + this.headers = common.headersArrayToObject( + this.rawHeaders.concat(this.scope._defaultReplyHeaders) + ); + + // If the content is not encoded we may need to transform the response body. + // Otherwise, we leave it as it is. + if ( + body && + typeof body !== "string" && + !Buffer.isBuffer(body) && + !common.isStream(body) && + !common.isContentEncoded(this.headers) + ) { + try { + body = stringify(body); + } catch (err) { + throw new Error("Error encoding response body into JSON"); + } + + if (!this.headers["content-type"]) { + // https://tools.ietf.org/html/rfc7231#section-3.1.1.5 + this.rawHeaders.push("Content-Type", "application/json"); + } + } + + if (this.scope.contentLen) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + if (typeof body === "string") { + this.rawHeaders.push("Content-Length", body.length); + } else if (Buffer.isBuffer(body)) { + this.rawHeaders.push("Content-Length", body.byteLength); + } + } + + this.scope.logger("reply.headers:", this.headers); + this.scope.logger("reply.rawHeaders:", this.rawHeaders); + + this.body = body; + + this.scope.add(this._key, this); + return this.scope; + } + + replyWithFile(statusCode, filePath, headers) { + if (!fs) { + throw new Error("No fs"); + } + this.filePath = filePath; + return this.reply( + statusCode, + () => { + const readStream = fs.createReadStream(filePath); + readStream.pause(); + return readStream; + }, + headers + ); + } + + // Also match request headers + // https://github.com/nock/nock/issues/163 + reqheaderMatches(options, key) { + const reqHeader = this.reqheaders[key]; + let header = options.headers[key]; + + // https://github.com/nock/nock/issues/399 + // https://github.com/nock/nock/issues/822 + if (header && typeof header !== "string" && header.toString) { + header = header.toString(); + } + + // We skip 'host' header comparison unless it's available in both mock and + // actual request. This because 'host' may get inserted by Nock itself and + // then get recorded. NOTE: We use lower-case header field names throughout + // Nock. See https://github.com/nock/nock/pull/196. + if ( + key === "host" && + (header === undefined || reqHeader === undefined) + ) { + return true; + } + + if (reqHeader !== undefined && header !== undefined) { + if (typeof reqHeader === "function") { + return reqHeader(header); + } else if (common.matchStringOrRegexp(header, reqHeader)) { + return true; + } + } + + this.scope.logger( + "request header field doesn't match:", + key, + header, + reqHeader + ); + return false; + } + + match(req, options, body) { + // check if the logger is enabled because the stringifies can be expensive. + if (this.scope.logger.enabled) { + this.scope.logger( + "attempting match %s, body = %s", + stringify(options), + stringify(body) + ); + } + + const method = (options.method || "GET").toUpperCase(); + let { path = "/" } = options; + let matches; + let matchKey; + const { proto } = options; + + if (this.method !== method) { + this.scope.logger( + `Method did not match. Request ${method} Interceptor ${this.method}` + ); + return false; + } + + if (this.scope.transformPathFunction) { + path = this.scope.transformPathFunction(path); + } + + const requestMatchesFilter = ({ name, value: predicate }) => { + const headerValue = req.getHeader(name); + if (typeof predicate === "function") { + return predicate(headerValue); + } else { + return common.matchStringOrRegexp(headerValue, predicate); + } + }; + + if ( + !this.scope.matchHeaders.every(requestMatchesFilter) || + !this.interceptorMatchHeaders.every(requestMatchesFilter) + ) { + this.scope.logger("headers don't match"); + return false; + } + + const reqHeadersMatch = Object.keys(this.reqheaders).every((key) => + this.reqheaderMatches(options, key) + ); + + if (!reqHeadersMatch) { + this.scope.logger("headers don't match"); + return false; + } + + if ( + this.scope.scopeOptions.conditionally && + !this.scope.scopeOptions.conditionally() + ) { + this.scope.logger( + "matching failed because Scope.conditionally() did not validate" + ); + return false; + } + + const badHeaders = this.badheaders.filter( + (header) => header in options.headers + ); + + if (badHeaders.length) { + this.scope.logger("request contains bad headers", ...badHeaders); + return false; + } + + // Match query strings when using query() + if (this.queries === null) { + this.scope.logger("query matching skipped"); + } else { + // can't rely on pathname or search being in the options, but path has a default + const [pathname, search] = path.split("?"); + const matchQueries = this.matchQuery({ search }); + + this.scope.logger( + matchQueries + ? "query matching succeeded" + : "query matching failed" + ); + + if (!matchQueries) { + return false; + } + + // If the query string was explicitly checked then subsequent checks against + // the path using a callback or regexp only validate the pathname. + path = pathname; + } + + // If we have a filtered scope then we use it instead reconstructing the + // scope from the request options (proto, host and port) as these two won't + // necessarily match and we have to remove the scope that was matched (vs. + // that was defined). + if (this.__nock_filteredScope) { + matchKey = this.__nock_filteredScope; + } else { + matchKey = common.normalizeOrigin( + proto, + options.host, + options.port + ); + } + + if (typeof this.uri === "function") { + matches = + common.matchStringOrRegexp(matchKey, this.basePath) && + // This is a false positive, as `uri` is not bound to `this`. + // eslint-disable-next-line no-useless-call + this.uri.call(this, path); + } else { + matches = + common.matchStringOrRegexp(matchKey, this.basePath) && + common.matchStringOrRegexp(path, this.path); + } + + this.scope.logger( + `matching ${matchKey}${path} to ${this._key}: ${matches}` + ); + + if (matches && this._requestBody !== undefined) { + if (this.scope.transformRequestBodyFunction) { + body = this.scope.transformRequestBodyFunction( + body, + this._requestBody + ); + } + + matches = matchBody(options, this._requestBody, body); + if (!matches) { + this.scope.logger( + "bodies don't match: \n", + this._requestBody, + "\n", + body + ); + } + } + + return matches; + } + + /** + * Return true when the interceptor's method, protocol, host, port, and path + * match the provided options. + */ + matchOrigin(options) { + const isPathFn = typeof this.path === "function"; + const isRegex = this.path instanceof RegExp; + const isRegexBasePath = this.scope.basePath instanceof RegExp; + + const method = (options.method || "GET").toUpperCase(); + let { path } = options; + const { proto } = options; + + // NOTE: Do not split off the query params as the regex could use them + if (!isRegex) { + path = path ? path.split("?")[0] : ""; + } + + if (this.scope.transformPathFunction) { + path = this.scope.transformPathFunction(path); + } + const comparisonKey = + isPathFn || isRegex ? this.__nock_scopeKey : this._key; + const matchKey = `${method} ${proto}://${options.host}${path}`; + + if (isPathFn) { + return !!(matchKey.match(comparisonKey) && this.path(path)); + } + + if (isRegex && !isRegexBasePath) { + return !!matchKey.match(comparisonKey) && this.path.test(path); + } + + if (isRegexBasePath) { + return ( + this.scope.basePath.test(matchKey) && !!path.match(this.path) + ); + } + + return comparisonKey === matchKey; + } + + matchHostName(options) { + const { basePath } = this.scope; + + if (basePath instanceof RegExp) { + return basePath.test(options.hostname); + } + + return options.hostname === this.scope.urlParts.hostname; + } + + matchQuery(options) { + if (this.queries === true) { + return true; + } + + const reqQueries = querystring.parse(options.search); + this.scope.logger("Interceptor queries: %j", this.queries); + this.scope.logger(" Request queries: %j", reqQueries); + + if (typeof this.queries === "function") { + return this.queries(reqQueries); + } + + return common.dataEqual(this.queries, reqQueries); + } + + filteringPath(...args) { + this.scope.filteringPath(...args); + return this; + } + + // TODO filtering by path is valid on the intercept level, but not filtering + // by request body? + + markConsumed() { + this.interceptionCounter++; + + remove(this); + + if (!this.scope.shouldPersist() && this.counter < 1) { + this.scope.remove(this._key, this); + } + } + + matchHeader(name, value) { + this.interceptorMatchHeaders.push({ name, value }); + return this; + } + + basicAuth({ user, pass = "" }) { + const encoded = Buffer.from(`${user}:${pass}`).toString("base64"); + this.matchHeader("authorization", `Basic ${encoded}`); + return this; + } + + /** + * Set query strings for the interceptor + * @name query + * @param queries Object of query string name,values (accepts regexp values) + * @public + * @example + * // Will match 'http://zombo.com/?q=t' + * nock('http://zombo.com').get('/').query({q: 't'}); + */ + query(queries) { + if (this.queries !== null) { + throw Error(`Query parameters have already been defined`); + } + + // Allow all query strings to match this route + if (queries === true) { + this.queries = queries; + return this; + } + + if (typeof queries === "function") { + this.queries = queries; + return this; + } + + let strFormattingFn; + if (this.scope.scopeOptions.encodedQueryParams) { + strFormattingFn = common.percentDecode; + } + + if ( + queries instanceof URLSearchParams || + typeof queries === "string" + ) { + // Normalize the data into the shape that is matched against. + // Duplicate keys are handled by combining the values into an array. + queries = querystring.parse(queries.toString()); + } else if (!common.isPlainObject(queries)) { + throw Error(`Argument Error: ${queries}`); + } + + this.queries = {}; + for (const [key, value] of Object.entries(queries)) { + const formatted = common.formatQueryValue( + key, + value, + strFormattingFn + ); + const [formattedKey, formattedValue] = formatted; + this.queries[formattedKey] = formattedValue; + } + + return this; + } + + /** + * Set number of times will repeat the interceptor + * @name times + * @param newCounter Number of times to repeat (should be > 0) + * @public + * @example + * // Will repeat mock 5 times for same king of request + * nock('http://zombo.com).get('/').times(5).reply(200, 'Ok'); + */ + times(newCounter) { + if (newCounter < 1) { + return this; + } + + this.counter = newCounter; + + return this; + } + + /** + * An sugar syntax for times(1) + * @name once + * @see {@link times} + * @public + * @example + * nock('http://zombo.com).get('/').once().reply(200, 'Ok'); + */ + once() { + return this.times(1); + } + + /** + * An sugar syntax for times(2) + * @name twice + * @see {@link times} + * @public + * @example + * nock('http://zombo.com).get('/').twice().reply(200, 'Ok'); + */ + twice() { + return this.times(2); + } + + /** + * An sugar syntax for times(3). + * @name thrice + * @see {@link times} + * @public + * @example + * nock('http://zombo.com).get('/').thrice().reply(200, 'Ok'); + */ + thrice() { + return this.times(3); + } + + /** + * Delay the response by a certain number of ms. + * + * @param {(integer|object)} opts - Number of milliseconds to wait, or an object + * @param {integer} [opts.head] - Number of milliseconds to wait before response is sent + * @param {integer} [opts.body] - Number of milliseconds to wait before response body is sent + * @return {Interceptor} - the current interceptor for chaining + */ + delay(opts) { + let headDelay; + let bodyDelay; + if (typeof opts === "number") { + headDelay = opts; + bodyDelay = 0; + } else if (typeof opts === "object") { + headDelay = opts.head || 0; + bodyDelay = opts.body || 0; + } else { + throw new Error(`Unexpected input opts ${opts}`); + } + + return this.delayConnection(headDelay).delayBody(bodyDelay); + } + + /** + * Delay the response body by a certain number of ms. + * + * @param {integer} ms - Number of milliseconds to wait before response is sent + * @return {Interceptor} - the current interceptor for chaining + */ + delayBody(ms) { + this.delayBodyInMs = ms; + return this; + } + + /** + * Delay the connection by a certain number of ms. + * + * @param {integer} ms - Number of milliseconds to wait + * @return {Interceptor} - the current interceptor for chaining + */ + delayConnection(ms) { + this.delayConnectionInMs = ms; + return this; + } + }; + + /***/ + }, + + /***/ 3986: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const querystring = __nccwpck_require__(3477); + + const common = __nccwpck_require__(1521); + + module.exports = function matchBody(options, spec, body) { + if (spec instanceof RegExp) { + return spec.test(body); + } + + if (Buffer.isBuffer(spec)) { + const encoding = common.isUtf8Representable(spec) ? "utf8" : "hex"; + spec = spec.toString(encoding); + } + + const contentType = ( + (options.headers && + (options.headers["Content-Type"] || + options.headers["content-type"])) || + "" + ).toString(); + + const isMultipart = contentType.includes("multipart"); + const isUrlencoded = contentType.includes( + "application/x-www-form-urlencoded" + ); + + // try to transform body to json + let json; + if (typeof spec === "object" || typeof spec === "function") { + try { + json = JSON.parse(body); + } catch (err) { + // not a valid JSON string + } + if (json !== undefined) { + body = json; + } else if (isUrlencoded) { + body = querystring.parse(body); + } + } + + if (typeof spec === "function") { + return spec.call(options, body); + } + + // strip line endings from both so that we get a match no matter what OS we are running on + // if Content-Type does not contain 'multipart' + if (!isMultipart && typeof body === "string") { + body = body.replace(/\r?\n|\r/g, ""); + } + + if (!isMultipart && typeof spec === "string") { + spec = spec.replace(/\r?\n|\r/g, ""); + } + + // Because the nature of URL encoding, all the values in the body must be cast to strings. + // dataEqual does strict checking, so we have to cast the non-regexp values in the spec too. + if (isUrlencoded) { + spec = mapValuesDeep(spec, (val) => + val instanceof RegExp ? val : `${val}` + ); + } + + return common.dataEqual(spec, body); + }; + + function mapValues(object, cb) { + const keys = Object.keys(object); + for (const key of keys) { + object[key] = cb(object[key], key, object); + } + return object; + } + + /** + * Based on lodash issue discussion + * https://github.com/lodash/lodash/issues/1244 + */ + function mapValuesDeep(obj, cb) { + if (Array.isArray(obj)) { + return obj.map((v) => mapValuesDeep(v, cb)); + } + if (common.isPlainObject(obj)) { + return mapValues(obj, (v) => mapValuesDeep(v, cb)); + } + return cb(obj); + } + + /***/ + }, + + /***/ 6523: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const stream = __nccwpck_require__(2781); + const util = __nccwpck_require__(3837); + const zlib = __nccwpck_require__(9796); + const debug = __nccwpck_require__(8237)("nock.playback_interceptor"); + const common = __nccwpck_require__(1521); + + function parseJSONRequestBody(req, requestBody) { + if (!requestBody || !common.isJSONContent(req.headers)) { + return requestBody; + } + + if (common.contentEncoding(req.headers, "gzip")) { + requestBody = String( + zlib.gunzipSync(Buffer.from(requestBody, "hex")) + ); + } else if (common.contentEncoding(req.headers, "deflate")) { + requestBody = String( + zlib.inflateSync(Buffer.from(requestBody, "hex")) + ); + } + + return JSON.parse(requestBody); + } + + function parseFullReplyResult(response, fullReplyResult) { + debug("full response from callback result: %j", fullReplyResult); + + if (!Array.isArray(fullReplyResult)) { + throw Error( + "A single function provided to .reply MUST return an array" + ); + } + + if (fullReplyResult.length > 3) { + throw Error( + "The array returned from the .reply callback contains too many values" + ); + } + + const [status, body = "", headers] = fullReplyResult; + + if (!Number.isInteger(status)) { + throw new Error(`Invalid ${typeof status} value for status code`); + } + + response.statusCode = status; + response.rawHeaders.push(...common.headersInputToRawArray(headers)); + debug("response.rawHeaders after reply: %j", response.rawHeaders); + + return body; + } + + /** + * Determine which of the default headers should be added to the response. + * + * Don't include any defaults whose case-insensitive keys are already on the response. + */ + function selectDefaultHeaders(existingHeaders, defaultHeaders) { + if (!defaultHeaders.length) { + return []; // return early if we don't need to bother + } + + const definedHeaders = new Set(); + const result = []; + + common.forEachHeader(existingHeaders, (_, fieldName) => { + definedHeaders.add(fieldName.toLowerCase()); + }); + common.forEachHeader(defaultHeaders, (value, fieldName) => { + if (!definedHeaders.has(fieldName.toLowerCase())) { + result.push(fieldName, value); + } + }); + + return result; + } + + // Presents a list of Buffers as a Readable + class ReadableBuffers extends stream.Readable { + constructor(buffers, opts = {}) { + super(opts); + + this.buffers = buffers; + } + + _read(_size) { + while (this.buffers.length) { + if (!this.push(this.buffers.shift())) { + return; + } + } + this.push(null); + } + } + + function convertBodyToStream(body) { + if (common.isStream(body)) { + return body; + } + + if (body === undefined) { + return new ReadableBuffers([]); + } + + if (Buffer.isBuffer(body)) { + return new ReadableBuffers([body]); + } + + if (typeof body !== "string") { + body = JSON.stringify(body); + } + + return new ReadableBuffers([Buffer.from(body)]); + } + + /** + * Play back an interceptor using the given request and mock response. + */ + function playbackInterceptor({ req, socket, options, requestBodyString, requestBodyIsUtf8Representable, response, - interceptor: matchedInterceptor, - }) - } else { - globalEmitter.emit('no match', req, options, requestBodyString) - - // Try to find a hostname match that allows unmocked. - const allowUnmocked = interceptors.some( - i => i.matchHostName(options) && i.options.allowUnmocked, - ) - - if (allowUnmocked && req instanceof ClientRequest) { - const newReq = - options.proto === 'https' - ? originalHttpsRequest(options) - : originalHttpRequest(options) - - propagate(newReq, req) - // We send the raw buffer as we received it, not as we interpreted it. - newReq.end(requestBodyBuffer) - } else { - const reqStr = common.stringifyRequest(options, requestBodyString) - const err = new Error(`Nock: No match for request ${reqStr}`) - err.code = 'ERR_NOCK_NO_MATCH' - err.statusCode = err.status = 404 - req.destroy(err) - } - } - } -} - -module.exports = { InterceptedRequestRouter } - - -/***/ }), - -/***/ 5419: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const stringify = __nccwpck_require__(7073) -const querystring = __nccwpck_require__(3477) -const { URL, URLSearchParams } = __nccwpck_require__(7310) - -const common = __nccwpck_require__(1521) -const { remove } = __nccwpck_require__(7607) -const matchBody = __nccwpck_require__(3986) - -let fs -try { - fs = __nccwpck_require__(7147) -} catch (err) { - // do nothing, we're in the browser -} - -module.exports = class Interceptor { - /** - * - * Valid argument types for `uri`: - * - A string used for strict comparisons with pathname. - * The search portion of the URI may also be postfixed, in which case the search params - * are striped and added via the `query` method. - * - A RegExp instance that tests against only the pathname of requests. - * - A synchronous function bound to this Interceptor instance. It's provided the pathname - * of requests and must return a boolean denoting if the request is considered a match. - */ - constructor(scope, uri, method, requestBody, interceptorOptions) { - const uriIsStr = typeof uri === 'string' - // Check for leading slash. Uri can be either a string or a regexp, but - // When enabled filteringScope ignores the passed URL entirely so we skip validation. - - if ( - uriIsStr && - !scope.scopeOptions.filteringScope && - !scope.basePathname && - !uri.startsWith('/') && - !uri.startsWith('*') - ) { - throw Error( - `Non-wildcard URL path strings must begin with a slash (otherwise they won't match anything) (got: ${uri})`, - ) - } - - if (!method) { - throw new Error( - 'The "method" parameter is required for an intercept call.', - ) - } - - this.scope = scope - this.interceptorMatchHeaders = [] - this.method = method.toUpperCase() - this.uri = uri - this._key = `${this.method} ${scope.basePath}${scope.basePathname}${ - uriIsStr ? '' : '/' - }${uri}` - this.basePath = this.scope.basePath - this.path = uriIsStr ? scope.basePathname + uri : uri - this.queries = null - - this.options = interceptorOptions || {} - this.counter = 1 - this._requestBody = requestBody - - // We use lower-case header field names throughout Nock. - this.reqheaders = common.headersFieldNamesToLowerCase( - scope.scopeOptions.reqheaders || {}, - true, - ) - this.badheaders = common.headersFieldsArrayToLowerCase( - scope.scopeOptions.badheaders || [], - ) - - this.delayBodyInMs = 0 - this.delayConnectionInMs = 0 - - this.optional = false - - // strip off literal query parameters if they were provided as part of the URI - if (uriIsStr && uri.includes('?')) { - // localhost is a dummy value because the URL constructor errors for only relative inputs - const parsedURL = new URL(this.path, 'http://localhost') - this.path = parsedURL.pathname - this.query(parsedURL.searchParams) - this._key = `${this.method} ${scope.basePath}${this.path}` - } - } - - optionally(flag = true) { - // The default behaviour of optionally() with no arguments is to make the mock optional. - if (typeof flag !== 'boolean') { - throw new Error('Invalid arguments: argument should be a boolean') - } - - this.optional = flag - - return this - } - - replyWithError(errorMessage) { - this.errorMessage = errorMessage - - this.options = { - ...this.scope.scopeOptions, - ...this.options, - } - - this.scope.add(this._key, this) - return this.scope - } - - reply(statusCode, body, rawHeaders) { - // support the format of only passing in a callback - if (typeof statusCode === 'function') { - if (arguments.length > 1) { - // It's not very Javascript-y to throw an error for extra args to a function, but because - // of legacy behavior, this error was added to reduce confusion for those migrating. - throw Error( - 'Invalid arguments. When providing a function for the first argument, .reply does not accept other arguments.', - ) - } - this.statusCode = null - this.fullReplyFunction = statusCode - } else { - if (statusCode !== undefined && !Number.isInteger(statusCode)) { - throw new Error(`Invalid ${typeof statusCode} value for status code`) - } - - this.statusCode = statusCode || 200 - if (typeof body === 'function') { - this.replyFunction = body - body = null - } - } - - this.options = { - ...this.scope.scopeOptions, - ...this.options, - } - - this.rawHeaders = common.headersInputToRawArray(rawHeaders) - - if (this.scope.date) { - // https://tools.ietf.org/html/rfc7231#section-7.1.1.2 - this.rawHeaders.push('Date', this.scope.date.toUTCString()) - } - - // Prepare the headers temporarily so we can make best guesses about content-encoding and content-type - // below as well as while the response is being processed in RequestOverrider.end(). - // Including all the default headers is safe for our purposes because of the specific headers we introspect. - // A more thoughtful process is used to merge the default headers when the response headers are finally computed. - this.headers = common.headersArrayToObject( - this.rawHeaders.concat(this.scope._defaultReplyHeaders), - ) - - // If the content is not encoded we may need to transform the response body. - // Otherwise, we leave it as it is. - if ( - body && - typeof body !== 'string' && - !Buffer.isBuffer(body) && - !common.isStream(body) && - !common.isContentEncoded(this.headers) - ) { - try { - body = stringify(body) - } catch (err) { - throw new Error('Error encoding response body into JSON') - } - - if (!this.headers['content-type']) { - // https://tools.ietf.org/html/rfc7231#section-3.1.1.5 - this.rawHeaders.push('Content-Type', 'application/json') - } - } - - if (this.scope.contentLen) { - // https://tools.ietf.org/html/rfc7230#section-3.3.2 - if (typeof body === 'string') { - this.rawHeaders.push('Content-Length', body.length) - } else if (Buffer.isBuffer(body)) { - this.rawHeaders.push('Content-Length', body.byteLength) - } - } - - this.scope.logger('reply.headers:', this.headers) - this.scope.logger('reply.rawHeaders:', this.rawHeaders) - - this.body = body - - this.scope.add(this._key, this) - return this.scope - } - - replyWithFile(statusCode, filePath, headers) { - if (!fs) { - throw new Error('No fs') - } - this.filePath = filePath - return this.reply( - statusCode, - () => { - const readStream = fs.createReadStream(filePath) - readStream.pause() - return readStream - }, - headers, - ) - } - - // Also match request headers - // https://github.com/nock/nock/issues/163 - reqheaderMatches(options, key) { - const reqHeader = this.reqheaders[key] - let header = options.headers[key] - - // https://github.com/nock/nock/issues/399 - // https://github.com/nock/nock/issues/822 - if (header && typeof header !== 'string' && header.toString) { - header = header.toString() - } - - // We skip 'host' header comparison unless it's available in both mock and - // actual request. This because 'host' may get inserted by Nock itself and - // then get recorded. NOTE: We use lower-case header field names throughout - // Nock. See https://github.com/nock/nock/pull/196. - if (key === 'host' && (header === undefined || reqHeader === undefined)) { - return true - } - - if (reqHeader !== undefined && header !== undefined) { - if (typeof reqHeader === 'function') { - return reqHeader(header) - } else if (common.matchStringOrRegexp(header, reqHeader)) { - return true - } - } - - this.scope.logger( - "request header field doesn't match:", - key, - header, - reqHeader, - ) - return false - } - - match(req, options, body) { - // check if the logger is enabled because the stringifies can be expensive. - if (this.scope.logger.enabled) { - this.scope.logger( - 'attempting match %s, body = %s', - stringify(options), - stringify(body), - ) - } - - const method = (options.method || 'GET').toUpperCase() - let { path = '/' } = options - let matches - let matchKey - const { proto } = options - - if (this.method !== method) { - this.scope.logger( - `Method did not match. Request ${method} Interceptor ${this.method}`, - ) - return false - } - - if (this.scope.transformPathFunction) { - path = this.scope.transformPathFunction(path) - } - - const requestMatchesFilter = ({ name, value: predicate }) => { - const headerValue = req.getHeader(name) - if (typeof predicate === 'function') { - return predicate(headerValue) - } else { - return common.matchStringOrRegexp(headerValue, predicate) - } - } - - if ( - !this.scope.matchHeaders.every(requestMatchesFilter) || - !this.interceptorMatchHeaders.every(requestMatchesFilter) - ) { - this.scope.logger("headers don't match") - return false - } - - const reqHeadersMatch = Object.keys(this.reqheaders).every(key => - this.reqheaderMatches(options, key), - ) - - if (!reqHeadersMatch) { - this.scope.logger("headers don't match") - return false - } - - if ( - this.scope.scopeOptions.conditionally && - !this.scope.scopeOptions.conditionally() - ) { - this.scope.logger( - 'matching failed because Scope.conditionally() did not validate', - ) - return false - } - - const badHeaders = this.badheaders.filter( - header => header in options.headers, - ) - - if (badHeaders.length) { - this.scope.logger('request contains bad headers', ...badHeaders) - return false - } - - // Match query strings when using query() - if (this.queries === null) { - this.scope.logger('query matching skipped') - } else { - // can't rely on pathname or search being in the options, but path has a default - const [pathname, search] = path.split('?') - const matchQueries = this.matchQuery({ search }) - - this.scope.logger( - matchQueries ? 'query matching succeeded' : 'query matching failed', - ) - - if (!matchQueries) { - return false - } - - // If the query string was explicitly checked then subsequent checks against - // the path using a callback or regexp only validate the pathname. - path = pathname - } - - // If we have a filtered scope then we use it instead reconstructing the - // scope from the request options (proto, host and port) as these two won't - // necessarily match and we have to remove the scope that was matched (vs. - // that was defined). - if (this.__nock_filteredScope) { - matchKey = this.__nock_filteredScope - } else { - matchKey = common.normalizeOrigin(proto, options.host, options.port) - } - - if (typeof this.uri === 'function') { - matches = - common.matchStringOrRegexp(matchKey, this.basePath) && - // This is a false positive, as `uri` is not bound to `this`. - // eslint-disable-next-line no-useless-call - this.uri.call(this, path) - } else { - matches = - common.matchStringOrRegexp(matchKey, this.basePath) && - common.matchStringOrRegexp(path, this.path) - } - - this.scope.logger(`matching ${matchKey}${path} to ${this._key}: ${matches}`) - - if (matches && this._requestBody !== undefined) { - if (this.scope.transformRequestBodyFunction) { - body = this.scope.transformRequestBodyFunction(body, this._requestBody) - } - - matches = matchBody(options, this._requestBody, body) - if (!matches) { - this.scope.logger( - "bodies don't match: \n", - this._requestBody, - '\n', - body, - ) - } - } - - return matches - } - - /** - * Return true when the interceptor's method, protocol, host, port, and path - * match the provided options. - */ - matchOrigin(options) { - const isPathFn = typeof this.path === 'function' - const isRegex = this.path instanceof RegExp - const isRegexBasePath = this.scope.basePath instanceof RegExp - - const method = (options.method || 'GET').toUpperCase() - let { path } = options - const { proto } = options - - // NOTE: Do not split off the query params as the regex could use them - if (!isRegex) { - path = path ? path.split('?')[0] : '' - } - - if (this.scope.transformPathFunction) { - path = this.scope.transformPathFunction(path) - } - const comparisonKey = isPathFn || isRegex ? this.__nock_scopeKey : this._key - const matchKey = `${method} ${proto}://${options.host}${path}` - - if (isPathFn) { - return !!(matchKey.match(comparisonKey) && this.path(path)) - } - - if (isRegex && !isRegexBasePath) { - return !!matchKey.match(comparisonKey) && this.path.test(path) - } - - if (isRegexBasePath) { - return this.scope.basePath.test(matchKey) && !!path.match(this.path) - } - - return comparisonKey === matchKey - } - - matchHostName(options) { - const { basePath } = this.scope - - if (basePath instanceof RegExp) { - return basePath.test(options.hostname) - } - - return options.hostname === this.scope.urlParts.hostname - } - - matchQuery(options) { - if (this.queries === true) { - return true - } - - const reqQueries = querystring.parse(options.search) - this.scope.logger('Interceptor queries: %j', this.queries) - this.scope.logger(' Request queries: %j', reqQueries) - - if (typeof this.queries === 'function') { - return this.queries(reqQueries) - } - - return common.dataEqual(this.queries, reqQueries) - } - - filteringPath(...args) { - this.scope.filteringPath(...args) - return this - } - - // TODO filtering by path is valid on the intercept level, but not filtering - // by request body? - - markConsumed() { - this.interceptionCounter++ - - remove(this) - - if (!this.scope.shouldPersist() && this.counter < 1) { - this.scope.remove(this._key, this) - } - } - - matchHeader(name, value) { - this.interceptorMatchHeaders.push({ name, value }) - return this - } - - basicAuth({ user, pass = '' }) { - const encoded = Buffer.from(`${user}:${pass}`).toString('base64') - this.matchHeader('authorization', `Basic ${encoded}`) - return this - } - - /** - * Set query strings for the interceptor - * @name query - * @param queries Object of query string name,values (accepts regexp values) - * @public - * @example - * // Will match 'http://zombo.com/?q=t' - * nock('http://zombo.com').get('/').query({q: 't'}); - */ - query(queries) { - if (this.queries !== null) { - throw Error(`Query parameters have already been defined`) - } - - // Allow all query strings to match this route - if (queries === true) { - this.queries = queries - return this - } - - if (typeof queries === 'function') { - this.queries = queries - return this - } - - let strFormattingFn - if (this.scope.scopeOptions.encodedQueryParams) { - strFormattingFn = common.percentDecode - } - - if (queries instanceof URLSearchParams || typeof queries === 'string') { - // Normalize the data into the shape that is matched against. - // Duplicate keys are handled by combining the values into an array. - queries = querystring.parse(queries.toString()) - } else if (!common.isPlainObject(queries)) { - throw Error(`Argument Error: ${queries}`) - } - - this.queries = {} - for (const [key, value] of Object.entries(queries)) { - const formatted = common.formatQueryValue(key, value, strFormattingFn) - const [formattedKey, formattedValue] = formatted - this.queries[formattedKey] = formattedValue - } - - return this - } - - /** - * Set number of times will repeat the interceptor - * @name times - * @param newCounter Number of times to repeat (should be > 0) - * @public - * @example - * // Will repeat mock 5 times for same king of request - * nock('http://zombo.com).get('/').times(5).reply(200, 'Ok'); - */ - times(newCounter) { - if (newCounter < 1) { - return this - } - - this.counter = newCounter - - return this - } - - /** - * An sugar syntax for times(1) - * @name once - * @see {@link times} - * @public - * @example - * nock('http://zombo.com).get('/').once().reply(200, 'Ok'); - */ - once() { - return this.times(1) - } - - /** - * An sugar syntax for times(2) - * @name twice - * @see {@link times} - * @public - * @example - * nock('http://zombo.com).get('/').twice().reply(200, 'Ok'); - */ - twice() { - return this.times(2) - } - - /** - * An sugar syntax for times(3). - * @name thrice - * @see {@link times} - * @public - * @example - * nock('http://zombo.com).get('/').thrice().reply(200, 'Ok'); - */ - thrice() { - return this.times(3) - } - - /** - * Delay the response by a certain number of ms. - * - * @param {(integer|object)} opts - Number of milliseconds to wait, or an object - * @param {integer} [opts.head] - Number of milliseconds to wait before response is sent - * @param {integer} [opts.body] - Number of milliseconds to wait before response body is sent - * @return {Interceptor} - the current interceptor for chaining - */ - delay(opts) { - let headDelay - let bodyDelay - if (typeof opts === 'number') { - headDelay = opts - bodyDelay = 0 - } else if (typeof opts === 'object') { - headDelay = opts.head || 0 - bodyDelay = opts.body || 0 - } else { - throw new Error(`Unexpected input opts ${opts}`) - } - - return this.delayConnection(headDelay).delayBody(bodyDelay) - } - - /** - * Delay the response body by a certain number of ms. - * - * @param {integer} ms - Number of milliseconds to wait before response is sent - * @return {Interceptor} - the current interceptor for chaining - */ - delayBody(ms) { - this.delayBodyInMs = ms - return this - } - - /** - * Delay the connection by a certain number of ms. - * - * @param {integer} ms - Number of milliseconds to wait - * @return {Interceptor} - the current interceptor for chaining - */ - delayConnection(ms) { - this.delayConnectionInMs = ms - return this - } -} - - -/***/ }), - -/***/ 3986: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const querystring = __nccwpck_require__(3477) - -const common = __nccwpck_require__(1521) - -module.exports = function matchBody(options, spec, body) { - if (spec instanceof RegExp) { - return spec.test(body) - } - - if (Buffer.isBuffer(spec)) { - const encoding = common.isUtf8Representable(spec) ? 'utf8' : 'hex' - spec = spec.toString(encoding) - } - - const contentType = ( - (options.headers && - (options.headers['Content-Type'] || options.headers['content-type'])) || - '' - ).toString() - - const isMultipart = contentType.includes('multipart') - const isUrlencoded = contentType.includes('application/x-www-form-urlencoded') - - // try to transform body to json - let json - if (typeof spec === 'object' || typeof spec === 'function') { - try { - json = JSON.parse(body) - } catch (err) { - // not a valid JSON string - } - if (json !== undefined) { - body = json - } else if (isUrlencoded) { - body = querystring.parse(body) - } - } - - if (typeof spec === 'function') { - return spec.call(options, body) - } - - // strip line endings from both so that we get a match no matter what OS we are running on - // if Content-Type does not contain 'multipart' - if (!isMultipart && typeof body === 'string') { - body = body.replace(/\r?\n|\r/g, '') - } - - if (!isMultipart && typeof spec === 'string') { - spec = spec.replace(/\r?\n|\r/g, '') - } - - // Because the nature of URL encoding, all the values in the body must be cast to strings. - // dataEqual does strict checking, so we have to cast the non-regexp values in the spec too. - if (isUrlencoded) { - spec = mapValuesDeep(spec, val => (val instanceof RegExp ? val : `${val}`)) - } - - return common.dataEqual(spec, body) -} - -function mapValues(object, cb) { - const keys = Object.keys(object) - for (const key of keys) { - object[key] = cb(object[key], key, object) - } - return object -} - -/** - * Based on lodash issue discussion - * https://github.com/lodash/lodash/issues/1244 - */ -function mapValuesDeep(obj, cb) { - if (Array.isArray(obj)) { - return obj.map(v => mapValuesDeep(v, cb)) - } - if (common.isPlainObject(obj)) { - return mapValues(obj, v => mapValuesDeep(v, cb)) - } - return cb(obj) -} - - -/***/ }), - -/***/ 6523: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const stream = __nccwpck_require__(2781) -const util = __nccwpck_require__(3837) -const zlib = __nccwpck_require__(9796) -const debug = __nccwpck_require__(8237)('nock.playback_interceptor') -const common = __nccwpck_require__(1521) - -function parseJSONRequestBody(req, requestBody) { - if (!requestBody || !common.isJSONContent(req.headers)) { - return requestBody - } - - if (common.contentEncoding(req.headers, 'gzip')) { - requestBody = String(zlib.gunzipSync(Buffer.from(requestBody, 'hex'))) - } else if (common.contentEncoding(req.headers, 'deflate')) { - requestBody = String(zlib.inflateSync(Buffer.from(requestBody, 'hex'))) - } - - return JSON.parse(requestBody) -} - -function parseFullReplyResult(response, fullReplyResult) { - debug('full response from callback result: %j', fullReplyResult) - - if (!Array.isArray(fullReplyResult)) { - throw Error('A single function provided to .reply MUST return an array') - } - - if (fullReplyResult.length > 3) { - throw Error( - 'The array returned from the .reply callback contains too many values', - ) - } - - const [status, body = '', headers] = fullReplyResult - - if (!Number.isInteger(status)) { - throw new Error(`Invalid ${typeof status} value for status code`) - } - - response.statusCode = status - response.rawHeaders.push(...common.headersInputToRawArray(headers)) - debug('response.rawHeaders after reply: %j', response.rawHeaders) - - return body -} - -/** - * Determine which of the default headers should be added to the response. - * - * Don't include any defaults whose case-insensitive keys are already on the response. - */ -function selectDefaultHeaders(existingHeaders, defaultHeaders) { - if (!defaultHeaders.length) { - return [] // return early if we don't need to bother - } - - const definedHeaders = new Set() - const result = [] - - common.forEachHeader(existingHeaders, (_, fieldName) => { - definedHeaders.add(fieldName.toLowerCase()) - }) - common.forEachHeader(defaultHeaders, (value, fieldName) => { - if (!definedHeaders.has(fieldName.toLowerCase())) { - result.push(fieldName, value) - } - }) - - return result -} - -// Presents a list of Buffers as a Readable -class ReadableBuffers extends stream.Readable { - constructor(buffers, opts = {}) { - super(opts) - - this.buffers = buffers - } - - _read(_size) { - while (this.buffers.length) { - if (!this.push(this.buffers.shift())) { - return - } - } - this.push(null) - } -} - -function convertBodyToStream(body) { - if (common.isStream(body)) { - return body - } - - if (body === undefined) { - return new ReadableBuffers([]) - } - - if (Buffer.isBuffer(body)) { - return new ReadableBuffers([body]) - } - - if (typeof body !== 'string') { - body = JSON.stringify(body) - } - - return new ReadableBuffers([Buffer.from(body)]) -} - -/** - * Play back an interceptor using the given request and mock response. - */ -function playbackInterceptor({ - req, - socket, - options, - requestBodyString, - requestBodyIsUtf8Representable, - response, - interceptor, -}) { - const { logger } = interceptor.scope - - function start() { - req.headers = req.getHeaders() - - interceptor.scope.emit('request', req, interceptor, requestBodyString) - - if (typeof interceptor.errorMessage !== 'undefined') { - let error - if (typeof interceptor.errorMessage === 'object') { - error = interceptor.errorMessage - } else { - error = new Error(interceptor.errorMessage) - } - - const delay = interceptor.delayBodyInMs + interceptor.delayConnectionInMs - common.setTimeout(() => req.destroy(error), delay) - return - } - - // This will be null if we have a fullReplyFunction, - // in that case status code will be set in `parseFullReplyResult` - response.statusCode = interceptor.statusCode - - // Clone headers/rawHeaders to not override them when evaluating later - response.rawHeaders = [...interceptor.rawHeaders] - logger('response.rawHeaders:', response.rawHeaders) - - // TODO: MAJOR: Don't tack the request onto the interceptor. - // The only reason we do this is so that it's available inside reply functions. - // It would be better to pass the request as an argument to the functions instead. - // Not adding the req as a third arg now because it should first be decided if (path, body, req) - // is the signature we want to go with going forward. - interceptor.req = req - - if (interceptor.replyFunction) { - const parsedRequestBody = parseJSONRequestBody(req, requestBodyString) - - let fn = interceptor.replyFunction - if (fn.length === 3) { - // Handle the case of an async reply function, the third parameter being the callback. - fn = util.promisify(fn) - } - - // At this point `fn` is either a synchronous function or a promise-returning function; - // wrapping in `Promise.resolve` makes it into a promise either way. - Promise.resolve(fn.call(interceptor, options.path, parsedRequestBody)) - .then(continueWithResponseBody) - .catch(err => req.destroy(err)) - return - } - - if (interceptor.fullReplyFunction) { - const parsedRequestBody = parseJSONRequestBody(req, requestBodyString) - - let fn = interceptor.fullReplyFunction - if (fn.length === 3) { - fn = util.promisify(fn) - } - - Promise.resolve(fn.call(interceptor, options.path, parsedRequestBody)) - .then(continueWithFullResponse) - .catch(err => req.destroy(err)) - return - } - - if ( - common.isContentEncoded(interceptor.headers) && - !common.isStream(interceptor.body) - ) { - // If the content is encoded we know that the response body *must* be an array - // of response buffers which should be mocked one by one. - // (otherwise decompressions after the first one fails as unzip expects to receive - // buffer by buffer and not one single merged buffer) - const bufferData = Array.isArray(interceptor.body) - ? interceptor.body - : [interceptor.body] - const responseBuffers = bufferData.map(data => Buffer.from(data, 'hex')) - const responseBody = new ReadableBuffers(responseBuffers) - continueWithResponseBody(responseBody) - return - } - - // If we get to this point, the body is either a string or an object that - // will eventually be JSON stringified. - let responseBody = interceptor.body - - // If the request was not UTF8-representable then we assume that the - // response won't be either. In that case we send the response as a Buffer - // object as that's what the client will expect. - if (!requestBodyIsUtf8Representable && typeof responseBody === 'string') { - // Try to create the buffer from the interceptor's body response as hex. - responseBody = Buffer.from(responseBody, 'hex') - - // Creating buffers does not necessarily throw errors; check for difference in size. - if ( - !responseBody || - (interceptor.body.length > 0 && responseBody.length === 0) - ) { - // We fallback on constructing buffer from utf8 representation of the body. - responseBody = Buffer.from(interceptor.body, 'utf8') - } - } - - return continueWithResponseBody(responseBody) - } - - function continueWithFullResponse(fullReplyResult) { - let responseBody - try { - responseBody = parseFullReplyResult(response, fullReplyResult) - } catch (err) { - req.destroy(err) - return - } - - continueWithResponseBody(responseBody) - } - - function prepareResponseHeaders(body) { - const defaultHeaders = [...interceptor.scope._defaultReplyHeaders] - - // Include a JSON content type when JSON.stringify is called on the body. - // This is a convenience added by Nock that has no analog in Node. It's added to the - // defaults, so it will be ignored if the caller explicitly provided the header already. - const isJSON = - body !== undefined && - typeof body !== 'string' && - !Buffer.isBuffer(body) && - !common.isStream(body) - - if (isJSON) { - defaultHeaders.push('Content-Type', 'application/json') - } - - response.rawHeaders.push( - ...selectDefaultHeaders(response.rawHeaders, defaultHeaders), - ) - - // Evaluate functional headers. - common.forEachHeader(response.rawHeaders, (value, fieldName, i) => { - if (typeof value === 'function') { - response.rawHeaders[i + 1] = value(req, response, body) - } - }) - - response.headers = common.headersArrayToObject(response.rawHeaders) - } - - function continueWithResponseBody(rawBody) { - prepareResponseHeaders(rawBody) - const bodyAsStream = convertBodyToStream(rawBody) - bodyAsStream.pause() - - // IncomingMessage extends Readable so we can't simply pipe. - bodyAsStream.on('data', function (chunk) { - response.push(chunk) - }) - bodyAsStream.on('end', function () { - // https://nodejs.org/dist/latest-v10.x/docs/api/http.html#http_message_complete - response.complete = true - response.push(null) - - interceptor.scope.emit('replied', req, interceptor) - }) - bodyAsStream.on('error', function (err) { - response.emit('error', err) - }) - - const { delayBodyInMs, delayConnectionInMs } = interceptor - - function respond() { - if (common.isRequestDestroyed(req)) { - return - } - - // Even though we've had the response object for awhile at this point, - // we only attach it to the request immediately before the `response` - // event because, as in Node, it alters the error handling around aborts. - req.res = response - response.req = req - - logger('emitting response') - req.emit('response', response) - - common.setTimeout(() => bodyAsStream.resume(), delayBodyInMs) - } - - socket.applyDelay(delayConnectionInMs) - common.setTimeout(respond, delayConnectionInMs) - } - - // Calling `start` immediately could take the request all the way to the connection delay - // during a single microtask execution. This setImmediate stalls the playback to ensure the - // correct events are emitted first ('socket', 'finish') and any aborts in the queue or - // called during a 'finish' listener can be called. - common.setImmediate(() => { - if (!common.isRequestDestroyed(req)) { - start() - } - }) -} - -module.exports = { playbackInterceptor } - - -/***/ }), - -/***/ 8687: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const debug = __nccwpck_require__(8237)('nock.recorder') -const querystring = __nccwpck_require__(3477) -const { inspect } = __nccwpck_require__(3837) - -const common = __nccwpck_require__(1521) -const { restoreOverriddenClientRequest } = __nccwpck_require__(7607) - -const SEPARATOR = '\n<<<<<<-- cut here -->>>>>>\n' -let recordingInProgress = false -let outputs = [] - -function getScope(options) { - const { proto, host, port } = common.normalizeRequestOptions(options) - return common.normalizeOrigin(proto, host, port) -} - -function getMethod(options) { - return options.method || 'GET' -} - -function getBodyFromChunks(chunks, headers) { - // If we have headers and there is content-encoding it means that the body - // shouldn't be merged but instead persisted as an array of hex strings so - // that the response chunks can be mocked one by one. - if (headers && common.isContentEncoded(headers)) { - return { - body: chunks.map(chunk => chunk.toString('hex')), - } - } - - const mergedBuffer = Buffer.concat(chunks) - - // The merged buffer can be one of three things: - // 1. A UTF-8-representable string buffer which represents a JSON object. - // 2. A UTF-8-representable buffer which doesn't represent a JSON object. - // 3. A non-UTF-8-representable buffer which then has to be recorded as a hex string. - const isUtf8Representable = common.isUtf8Representable(mergedBuffer) - if (isUtf8Representable) { - const maybeStringifiedJson = mergedBuffer.toString('utf8') - try { - return { - isUtf8Representable, - body: JSON.parse(maybeStringifiedJson), - } - } catch (err) { - return { - isUtf8Representable, - body: maybeStringifiedJson, - } - } - } else { - return { - isUtf8Representable, - body: mergedBuffer.toString('hex'), - } - } -} - -function generateRequestAndResponseObject({ - req, - bodyChunks, - options, - res, - dataChunks, - reqheaders, -}) { - const { body, isUtf8Representable } = getBodyFromChunks( - dataChunks, - res.headers, - ) - options.path = req.path - - return { - scope: getScope(options), - method: getMethod(options), - path: options.path, - // Is it deliberate that `getBodyFromChunks()` is called a second time? - body: getBodyFromChunks(bodyChunks).body, - status: res.statusCode, - response: body, - rawHeaders: res.rawHeaders, - reqheaders: reqheaders || undefined, - // When content-encoding is enabled, isUtf8Representable is `undefined`, - // so we explicitly check for `false`. - responseIsBinary: isUtf8Representable === false, - } -} - -function generateRequestAndResponse({ - req, - bodyChunks, - options, - res, - dataChunks, - reqheaders, -}) { - const requestBody = getBodyFromChunks(bodyChunks).body - const responseBody = getBodyFromChunks(dataChunks, res.headers).body - - // Remove any query params from options.path so they can be added in the query() function - let { path } = options - const queryIndex = req.path.indexOf('?') - let queryObj = {} - if (queryIndex !== -1) { - // Remove the query from the path - path = path.substring(0, queryIndex) - - const queryStr = req.path.slice(queryIndex + 1) - queryObj = querystring.parse(queryStr) - } - - // Escape any single quotes in the path as the output uses them - path = path.replace(/'/g, `\\'`) - - // Always encode the query parameters when recording. - const encodedQueryObj = {} - for (const key in queryObj) { - const formattedPair = common.formatQueryValue( - key, - queryObj[key], - common.percentEncode, - ) - encodedQueryObj[formattedPair[0]] = formattedPair[1] - } - - const lines = [] - - // We want a leading newline. - lines.push('') - - const scope = getScope(options) - lines.push(`nock('${scope}', {"encodedQueryParams":true})`) - - const methodName = getMethod(options).toLowerCase() - if (requestBody) { - lines.push(` .${methodName}('${path}', ${JSON.stringify(requestBody)})`) - } else { - lines.push(` .${methodName}('${path}')`) - } - - Object.entries(reqheaders || {}).forEach(([fieldName, fieldValue]) => { - const safeName = JSON.stringify(fieldName) - const safeValue = JSON.stringify(fieldValue) - lines.push(` .matchHeader(${safeName}, ${safeValue})`) - }) - - if (queryIndex !== -1) { - lines.push(` .query(${JSON.stringify(encodedQueryObj)})`) - } - - const statusCode = res.statusCode.toString() - const stringifiedResponseBody = JSON.stringify(responseBody) - const headers = inspect(res.rawHeaders) - lines.push(` .reply(${statusCode}, ${stringifiedResponseBody}, ${headers});`) - - return lines.join('\n') -} - -// This module variable is used to identify a unique recording ID in order to skip -// spurious requests that sometimes happen. This problem has been, so far, -// exclusively detected in nock's unit testing where 'checks if callback is specified' -// interferes with other tests as its t.end() is invoked without waiting for request -// to finish (which is the point of the test). -let currentRecordingId = 0 - -const defaultRecordOptions = { - dont_print: false, - enable_reqheaders_recording: false, - logging: console.log, // eslint-disable-line no-console - output_objects: false, - use_separator: true, -} - -function record(recOptions) { - // Trying to start recording with recording already in progress implies an error - // in the recording configuration (double recording makes no sense and used to lead - // to duplicates in output) - if (recordingInProgress) { - throw new Error('Nock recording already in progress') - } - - recordingInProgress = true - - // Set the new current recording ID and capture its value in this instance of record(). - currentRecordingId = currentRecordingId + 1 - const thisRecordingId = currentRecordingId - - // Originally the parameter was a dont_print boolean flag. - // To keep the existing code compatible we take that case into account. - if (typeof recOptions === 'boolean') { - recOptions = { dont_print: recOptions } - } - - recOptions = { ...defaultRecordOptions, ...recOptions } - - debug('start recording', thisRecordingId, recOptions) - - const { - dont_print: dontPrint, - enable_reqheaders_recording: enableReqHeadersRecording, - logging, - output_objects: outputObjects, - use_separator: useSeparator, - } = recOptions - - debug(thisRecordingId, 'restoring overridden requests before new overrides') - // To preserve backward compatibility (starting recording wasn't throwing if nock was already active) - // we restore any requests that may have been overridden by other parts of nock (e.g. intercept) - // NOTE: This is hacky as hell but it keeps the backward compatibility *and* allows correct - // behavior in the face of other modules also overriding ClientRequest. - common.restoreOverriddenRequests() - // We restore ClientRequest as it messes with recording of modules that also override ClientRequest (e.g. xhr2) - restoreOverriddenClientRequest() - - // We override the requests so that we can save information on them before executing. - common.overrideRequests(function (proto, overriddenRequest, rawArgs) { - const { options, callback } = common.normalizeClientRequestArgs(...rawArgs) - const bodyChunks = [] - - // Node 0.11 https.request calls http.request -- don't want to record things - // twice. - /* istanbul ignore if */ - if (options._recording) { - return overriddenRequest(options, callback) - } - options._recording = true - - const req = overriddenRequest(options, function (res) { - debug(thisRecordingId, 'intercepting', proto, 'request to record') - - // We put our 'end' listener to the front of the listener array. - res.once('end', function () { - debug(thisRecordingId, proto, 'intercepted request ended') - - let reqheaders - // Ignore request headers completely unless it was explicitly enabled by the user (see README) - if (enableReqHeadersRecording) { - // We never record user-agent headers as they are worse than useless - - // they actually make testing more difficult without providing any benefit (see README) - reqheaders = req.getHeaders() - common.deleteHeadersField(reqheaders, 'user-agent') - } - - const generateFn = outputObjects - ? generateRequestAndResponseObject - : generateRequestAndResponse - let out = generateFn({ - req, - bodyChunks, - options, - res, - dataChunks, - reqheaders, - }) - - debug('out:', out) - - // Check that the request was made during the current recording. - // If it hasn't then skip it. There is no other simple way to handle - // this as it depends on the timing of requests and responses. Throwing - // will make some recordings/unit tests fail randomly depending on how - // fast/slow the response arrived. - // If you are seeing this error then you need to make sure that all - // the requests made during a single recording session finish before - // ending the same recording session. - if (thisRecordingId !== currentRecordingId) { - debug('skipping recording of an out-of-order request', out) - return - } - - outputs.push(out) - - if (!dontPrint) { - if (useSeparator) { - if (typeof out !== 'string') { - out = JSON.stringify(out, null, 2) + interceptor, + }) { + const { logger } = interceptor.scope; + + function start() { + req.headers = req.getHeaders(); + + interceptor.scope.emit( + "request", + req, + interceptor, + requestBodyString + ); + + if (typeof interceptor.errorMessage !== "undefined") { + let error; + if (typeof interceptor.errorMessage === "object") { + error = interceptor.errorMessage; + } else { + error = new Error(interceptor.errorMessage); } - logging(SEPARATOR + out + SEPARATOR) + + const delay = + interceptor.delayBodyInMs + interceptor.delayConnectionInMs; + common.setTimeout(() => req.destroy(error), delay); + return; + } + + // This will be null if we have a fullReplyFunction, + // in that case status code will be set in `parseFullReplyResult` + response.statusCode = interceptor.statusCode; + + // Clone headers/rawHeaders to not override them when evaluating later + response.rawHeaders = [...interceptor.rawHeaders]; + logger("response.rawHeaders:", response.rawHeaders); + + // TODO: MAJOR: Don't tack the request onto the interceptor. + // The only reason we do this is so that it's available inside reply functions. + // It would be better to pass the request as an argument to the functions instead. + // Not adding the req as a third arg now because it should first be decided if (path, body, req) + // is the signature we want to go with going forward. + interceptor.req = req; + + if (interceptor.replyFunction) { + const parsedRequestBody = parseJSONRequestBody( + req, + requestBodyString + ); + + let fn = interceptor.replyFunction; + if (fn.length === 3) { + // Handle the case of an async reply function, the third parameter being the callback. + fn = util.promisify(fn); + } + + // At this point `fn` is either a synchronous function or a promise-returning function; + // wrapping in `Promise.resolve` makes it into a promise either way. + Promise.resolve( + fn.call(interceptor, options.path, parsedRequestBody) + ) + .then(continueWithResponseBody) + .catch((err) => req.destroy(err)); + return; + } + + if (interceptor.fullReplyFunction) { + const parsedRequestBody = parseJSONRequestBody( + req, + requestBodyString + ); + + let fn = interceptor.fullReplyFunction; + if (fn.length === 3) { + fn = util.promisify(fn); + } + + Promise.resolve( + fn.call(interceptor, options.path, parsedRequestBody) + ) + .then(continueWithFullResponse) + .catch((err) => req.destroy(err)); + return; + } + + if ( + common.isContentEncoded(interceptor.headers) && + !common.isStream(interceptor.body) + ) { + // If the content is encoded we know that the response body *must* be an array + // of response buffers which should be mocked one by one. + // (otherwise decompressions after the first one fails as unzip expects to receive + // buffer by buffer and not one single merged buffer) + const bufferData = Array.isArray(interceptor.body) + ? interceptor.body + : [interceptor.body]; + const responseBuffers = bufferData.map((data) => + Buffer.from(data, "hex") + ); + const responseBody = new ReadableBuffers(responseBuffers); + continueWithResponseBody(responseBody); + return; + } + + // If we get to this point, the body is either a string or an object that + // will eventually be JSON stringified. + let responseBody = interceptor.body; + + // If the request was not UTF8-representable then we assume that the + // response won't be either. In that case we send the response as a Buffer + // object as that's what the client will expect. + if ( + !requestBodyIsUtf8Representable && + typeof responseBody === "string" + ) { + // Try to create the buffer from the interceptor's body response as hex. + responseBody = Buffer.from(responseBody, "hex"); + + // Creating buffers does not necessarily throw errors; check for difference in size. + if ( + !responseBody || + (interceptor.body.length > 0 && responseBody.length === 0) + ) { + // We fallback on constructing buffer from utf8 representation of the body. + responseBody = Buffer.from(interceptor.body, "utf8"); + } + } + + return continueWithResponseBody(responseBody); + } + + function continueWithFullResponse(fullReplyResult) { + let responseBody; + try { + responseBody = parseFullReplyResult(response, fullReplyResult); + } catch (err) { + req.destroy(err); + return; + } + + continueWithResponseBody(responseBody); + } + + function prepareResponseHeaders(body) { + const defaultHeaders = [...interceptor.scope._defaultReplyHeaders]; + + // Include a JSON content type when JSON.stringify is called on the body. + // This is a convenience added by Nock that has no analog in Node. It's added to the + // defaults, so it will be ignored if the caller explicitly provided the header already. + const isJSON = + body !== undefined && + typeof body !== "string" && + !Buffer.isBuffer(body) && + !common.isStream(body); + + if (isJSON) { + defaultHeaders.push("Content-Type", "application/json"); + } + + response.rawHeaders.push( + ...selectDefaultHeaders(response.rawHeaders, defaultHeaders) + ); + + // Evaluate functional headers. + common.forEachHeader(response.rawHeaders, (value, fieldName, i) => { + if (typeof value === "function") { + response.rawHeaders[i + 1] = value(req, response, body); + } + }); + + response.headers = common.headersArrayToObject(response.rawHeaders); + } + + function continueWithResponseBody(rawBody) { + prepareResponseHeaders(rawBody); + const bodyAsStream = convertBodyToStream(rawBody); + bodyAsStream.pause(); + + // IncomingMessage extends Readable so we can't simply pipe. + bodyAsStream.on("data", function (chunk) { + response.push(chunk); + }); + bodyAsStream.on("end", function () { + // https://nodejs.org/dist/latest-v10.x/docs/api/http.html#http_message_complete + response.complete = true; + response.push(null); + + interceptor.scope.emit("replied", req, interceptor); + }); + bodyAsStream.on("error", function (err) { + response.emit("error", err); + }); + + const { delayBodyInMs, delayConnectionInMs } = interceptor; + + function respond() { + if (common.isRequestDestroyed(req)) { + return; + } + + // Even though we've had the response object for awhile at this point, + // we only attach it to the request immediately before the `response` + // event because, as in Node, it alters the error handling around aborts. + req.res = response; + response.req = req; + + logger("emitting response"); + req.emit("response", response); + + common.setTimeout(() => bodyAsStream.resume(), delayBodyInMs); + } + + socket.applyDelay(delayConnectionInMs); + common.setTimeout(respond, delayConnectionInMs); + } + + // Calling `start` immediately could take the request all the way to the connection delay + // during a single microtask execution. This setImmediate stalls the playback to ensure the + // correct events are emitted first ('socket', 'finish') and any aborts in the queue or + // called during a 'finish' listener can be called. + common.setImmediate(() => { + if (!common.isRequestDestroyed(req)) { + start(); + } + }); + } + + module.exports = { playbackInterceptor }; + + /***/ + }, + + /***/ 8687: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const debug = __nccwpck_require__(8237)("nock.recorder"); + const querystring = __nccwpck_require__(3477); + const { inspect } = __nccwpck_require__(3837); + + const common = __nccwpck_require__(1521); + const { restoreOverriddenClientRequest } = __nccwpck_require__(7607); + + const SEPARATOR = "\n<<<<<<-- cut here -->>>>>>\n"; + let recordingInProgress = false; + let outputs = []; + + function getScope(options) { + const { proto, host, port } = common.normalizeRequestOptions(options); + return common.normalizeOrigin(proto, host, port); + } + + function getMethod(options) { + return options.method || "GET"; + } + + function getBodyFromChunks(chunks, headers) { + // If we have headers and there is content-encoding it means that the body + // shouldn't be merged but instead persisted as an array of hex strings so + // that the response chunks can be mocked one by one. + if (headers && common.isContentEncoded(headers)) { + return { + body: chunks.map((chunk) => chunk.toString("hex")), + }; + } + + const mergedBuffer = Buffer.concat(chunks); + + // The merged buffer can be one of three things: + // 1. A UTF-8-representable string buffer which represents a JSON object. + // 2. A UTF-8-representable buffer which doesn't represent a JSON object. + // 3. A non-UTF-8-representable buffer which then has to be recorded as a hex string. + const isUtf8Representable = common.isUtf8Representable(mergedBuffer); + if (isUtf8Representable) { + const maybeStringifiedJson = mergedBuffer.toString("utf8"); + try { + return { + isUtf8Representable, + body: JSON.parse(maybeStringifiedJson), + }; + } catch (err) { + return { + isUtf8Representable, + body: maybeStringifiedJson, + }; + } + } else { + return { + isUtf8Representable, + body: mergedBuffer.toString("hex"), + }; + } + } + + function generateRequestAndResponseObject({ + req, + bodyChunks, + options, + res, + dataChunks, + reqheaders, + }) { + const { body, isUtf8Representable } = getBodyFromChunks( + dataChunks, + res.headers + ); + options.path = req.path; + + return { + scope: getScope(options), + method: getMethod(options), + path: options.path, + // Is it deliberate that `getBodyFromChunks()` is called a second time? + body: getBodyFromChunks(bodyChunks).body, + status: res.statusCode, + response: body, + rawHeaders: res.rawHeaders, + reqheaders: reqheaders || undefined, + // When content-encoding is enabled, isUtf8Representable is `undefined`, + // so we explicitly check for `false`. + responseIsBinary: isUtf8Representable === false, + }; + } + + function generateRequestAndResponse({ + req, + bodyChunks, + options, + res, + dataChunks, + reqheaders, + }) { + const requestBody = getBodyFromChunks(bodyChunks).body; + const responseBody = getBodyFromChunks(dataChunks, res.headers).body; + + // Remove any query params from options.path so they can be added in the query() function + let { path } = options; + const queryIndex = req.path.indexOf("?"); + let queryObj = {}; + if (queryIndex !== -1) { + // Remove the query from the path + path = path.substring(0, queryIndex); + + const queryStr = req.path.slice(queryIndex + 1); + queryObj = querystring.parse(queryStr); + } + + // Escape any single quotes in the path as the output uses them + path = path.replace(/'/g, `\\'`); + + // Always encode the query parameters when recording. + const encodedQueryObj = {}; + for (const key in queryObj) { + const formattedPair = common.formatQueryValue( + key, + queryObj[key], + common.percentEncode + ); + encodedQueryObj[formattedPair[0]] = formattedPair[1]; + } + + const lines = []; + + // We want a leading newline. + lines.push(""); + + const scope = getScope(options); + lines.push(`nock('${scope}', {"encodedQueryParams":true})`); + + const methodName = getMethod(options).toLowerCase(); + if (requestBody) { + lines.push( + ` .${methodName}('${path}', ${JSON.stringify(requestBody)})` + ); + } else { + lines.push(` .${methodName}('${path}')`); + } + + Object.entries(reqheaders || {}).forEach(([fieldName, fieldValue]) => { + const safeName = JSON.stringify(fieldName); + const safeValue = JSON.stringify(fieldValue); + lines.push(` .matchHeader(${safeName}, ${safeValue})`); + }); + + if (queryIndex !== -1) { + lines.push(` .query(${JSON.stringify(encodedQueryObj)})`); + } + + const statusCode = res.statusCode.toString(); + const stringifiedResponseBody = JSON.stringify(responseBody); + const headers = inspect(res.rawHeaders); + lines.push( + ` .reply(${statusCode}, ${stringifiedResponseBody}, ${headers});` + ); + + return lines.join("\n"); + } + + // This module variable is used to identify a unique recording ID in order to skip + // spurious requests that sometimes happen. This problem has been, so far, + // exclusively detected in nock's unit testing where 'checks if callback is specified' + // interferes with other tests as its t.end() is invoked without waiting for request + // to finish (which is the point of the test). + let currentRecordingId = 0; + + const defaultRecordOptions = { + dont_print: false, + enable_reqheaders_recording: false, + logging: console.log, // eslint-disable-line no-console + output_objects: false, + use_separator: true, + }; + + function record(recOptions) { + // Trying to start recording with recording already in progress implies an error + // in the recording configuration (double recording makes no sense and used to lead + // to duplicates in output) + if (recordingInProgress) { + throw new Error("Nock recording already in progress"); + } + + recordingInProgress = true; + + // Set the new current recording ID and capture its value in this instance of record(). + currentRecordingId = currentRecordingId + 1; + const thisRecordingId = currentRecordingId; + + // Originally the parameter was a dont_print boolean flag. + // To keep the existing code compatible we take that case into account. + if (typeof recOptions === "boolean") { + recOptions = { dont_print: recOptions }; + } + + recOptions = { ...defaultRecordOptions, ...recOptions }; + + debug("start recording", thisRecordingId, recOptions); + + const { + dont_print: dontPrint, + enable_reqheaders_recording: enableReqHeadersRecording, + logging, + output_objects: outputObjects, + use_separator: useSeparator, + } = recOptions; + + debug( + thisRecordingId, + "restoring overridden requests before new overrides" + ); + // To preserve backward compatibility (starting recording wasn't throwing if nock was already active) + // we restore any requests that may have been overridden by other parts of nock (e.g. intercept) + // NOTE: This is hacky as hell but it keeps the backward compatibility *and* allows correct + // behavior in the face of other modules also overriding ClientRequest. + common.restoreOverriddenRequests(); + // We restore ClientRequest as it messes with recording of modules that also override ClientRequest (e.g. xhr2) + restoreOverriddenClientRequest(); + + // We override the requests so that we can save information on them before executing. + common.overrideRequests(function (proto, overriddenRequest, rawArgs) { + const { options, callback } = common.normalizeClientRequestArgs( + ...rawArgs + ); + const bodyChunks = []; + + // Node 0.11 https.request calls http.request -- don't want to record things + // twice. + /* istanbul ignore if */ + if (options._recording) { + return overriddenRequest(options, callback); + } + options._recording = true; + + const req = overriddenRequest(options, function (res) { + debug(thisRecordingId, "intercepting", proto, "request to record"); + + // We put our 'end' listener to the front of the listener array. + res.once("end", function () { + debug(thisRecordingId, proto, "intercepted request ended"); + + let reqheaders; + // Ignore request headers completely unless it was explicitly enabled by the user (see README) + if (enableReqHeadersRecording) { + // We never record user-agent headers as they are worse than useless - + // they actually make testing more difficult without providing any benefit (see README) + reqheaders = req.getHeaders(); + common.deleteHeadersField(reqheaders, "user-agent"); + } + + const generateFn = outputObjects + ? generateRequestAndResponseObject + : generateRequestAndResponse; + let out = generateFn({ + req, + bodyChunks, + options, + res, + dataChunks, + reqheaders, + }); + + debug("out:", out); + + // Check that the request was made during the current recording. + // If it hasn't then skip it. There is no other simple way to handle + // this as it depends on the timing of requests and responses. Throwing + // will make some recordings/unit tests fail randomly depending on how + // fast/slow the response arrived. + // If you are seeing this error then you need to make sure that all + // the requests made during a single recording session finish before + // ending the same recording session. + if (thisRecordingId !== currentRecordingId) { + debug("skipping recording of an out-of-order request", out); + return; + } + + outputs.push(out); + + if (!dontPrint) { + if (useSeparator) { + if (typeof out !== "string") { + out = JSON.stringify(out, null, 2); + } + logging(SEPARATOR + out + SEPARATOR); + } else { + logging(out); + } + } + }); + + let encoding; + // We need to be aware of changes to the stream's encoding so that we + // don't accidentally mangle the data. + const { setEncoding } = res; + res.setEncoding = function (newEncoding) { + encoding = newEncoding; + return setEncoding.apply(this, arguments); + }; + + const dataChunks = []; + // Replace res.push with our own implementation that stores chunks + const origResPush = res.push; + res.push = function (data) { + if (data) { + if (encoding) { + data = Buffer.from(data, encoding); + } + dataChunks.push(data); + } + + return origResPush.call(res, data); + }; + + if (callback) { + callback(res, options, callback); + } + + debug("finished setting up intercepting"); + + // We override both the http and the https modules; when we are + // serializing the request, we need to know which was called. + // By stuffing the state, we can make sure that nock records + // the intended protocol. + if (proto === "https") { + options.proto = "https"; + } + }); + + const recordChunk = (chunk, encoding) => { + debug(thisRecordingId, "new", proto, "body chunk"); + if (!Buffer.isBuffer(chunk)) { + chunk = Buffer.from(chunk, encoding); + } + bodyChunks.push(chunk); + }; + + const oldWrite = req.write; + req.write = function (chunk, encoding) { + if (typeof chunk !== "undefined") { + recordChunk(chunk, encoding); + oldWrite.apply(req, arguments); + } else { + throw new Error("Data was undefined."); + } + }; + + // Starting in Node 8, `OutgoingMessage.end()` directly calls an internal + // `write_` function instead of proxying to the public + // `OutgoingMessage.write()` method, so we have to wrap `end` too. + const oldEnd = req.end; + req.end = function (chunk, encoding, callback) { + debug("req.end"); + if (typeof chunk === "function") { + callback = chunk; + chunk = null; + } else if (typeof encoding === "function") { + callback = encoding; + encoding = null; + } + + if (chunk) { + recordChunk(chunk, encoding); + } + oldEnd.call(req, chunk, encoding, callback); + }; + + return req; + }); + } + + // Restore *all* the overridden http/https modules' properties. + function restore() { + debug( + currentRecordingId, + "restoring all the overridden http/https properties" + ); + + common.restoreOverriddenRequests(); + restoreOverriddenClientRequest(); + recordingInProgress = false; + } + + function clear() { + outputs = []; + } + + module.exports = { + record, + outputs: () => outputs, + restore, + clear, + }; + + /***/ + }, + + /***/ 7004: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + /** + * @module nock/scope + */ + const { addInterceptor, isOn } = __nccwpck_require__(7607); + const common = __nccwpck_require__(1521); + const assert = __nccwpck_require__(9491); + const url = __nccwpck_require__(7310); + const debug = __nccwpck_require__(8237)("nock.scope"); + const { EventEmitter } = __nccwpck_require__(2361); + const Interceptor = __nccwpck_require__(5419); + + const { URL, Url: LegacyUrl } = url; + let fs; + + try { + fs = __nccwpck_require__(7147); + } catch (err) { + // do nothing, we're in the browser + } + + /** + * Normalizes the passed url for consistent internal processing + * @param {string|LegacyUrl|URL} u + */ + function normalizeUrl(u) { + if (!(u instanceof URL)) { + if (u instanceof LegacyUrl) { + return normalizeUrl(new URL(url.format(u))); + } + // If the url is invalid, let the URL library report it + return normalizeUrl(new URL(u)); + } + + if (!/https?:/.test(u.protocol)) { + throw new TypeError( + `Protocol '${u.protocol}' not recognized. This commonly occurs when a hostname and port are included without a protocol, producing a URL that is valid but confusing, and probably not what you want.` + ); + } + + return { + href: u.href, + origin: u.origin, + protocol: u.protocol, + username: u.username, + password: u.password, + host: u.host, + hostname: + // strip brackets from IPv6 + typeof u.hostname === "string" && u.hostname.startsWith("[") + ? u.hostname.slice(1, -1) + : u.hostname, + port: u.port || (u.protocol === "http:" ? 80 : 443), + pathname: u.pathname, + search: u.search, + searchParams: u.searchParams, + hash: u.hash, + }; + } + + /** + * @param {string|RegExp|LegacyUrl|URL} basePath + * @param {Object} options + * @param {boolean} options.allowUnmocked + * @param {string[]} options.badheaders + * @param {function} options.conditionally + * @param {boolean} options.encodedQueryParams + * @param {function} options.filteringScope + * @param {Object} options.reqheaders + * @constructor + */ + class Scope extends EventEmitter { + constructor(basePath, options) { + super(); + + this.keyedInterceptors = {}; + this.interceptors = []; + this.transformPathFunction = null; + this.transformRequestBodyFunction = null; + this.matchHeaders = []; + this.scopeOptions = options || {}; + this.urlParts = {}; + this._persist = false; + this.contentLen = false; + this.date = null; + this.basePath = basePath; + this.basePathname = ""; + this.port = null; + this._defaultReplyHeaders = []; + + let logNamespace = String(basePath); + + if (!(basePath instanceof RegExp)) { + this.urlParts = normalizeUrl(basePath); + this.port = this.urlParts.port; + this.basePathname = this.urlParts.pathname.replace(/\/$/, ""); + this.basePath = `${this.urlParts.protocol}//${this.urlParts.hostname}:${this.port}`; + logNamespace = this.urlParts.host; + } + + this.logger = debug.extend(logNamespace); + } + + add(key, interceptor) { + if (!(key in this.keyedInterceptors)) { + this.keyedInterceptors[key] = []; + } + this.keyedInterceptors[key].push(interceptor); + addInterceptor( + this.basePath, + interceptor, + this, + this.scopeOptions, + this.urlParts.hostname + ); + } + + remove(key, interceptor) { + if (this._persist) { + return; + } + const arr = this.keyedInterceptors[key]; + if (arr) { + arr.splice(arr.indexOf(interceptor), 1); + if (arr.length === 0) { + delete this.keyedInterceptors[key]; + } + } + } + + intercept(uri, method, requestBody, interceptorOptions) { + const ic = new Interceptor( + this, + uri, + method, + requestBody, + interceptorOptions + ); + + this.interceptors.push(ic); + return ic; + } + + get(uri, requestBody, options) { + return this.intercept(uri, "GET", requestBody, options); + } + + post(uri, requestBody, options) { + return this.intercept(uri, "POST", requestBody, options); + } + + put(uri, requestBody, options) { + return this.intercept(uri, "PUT", requestBody, options); + } + + head(uri, requestBody, options) { + return this.intercept(uri, "HEAD", requestBody, options); + } + + patch(uri, requestBody, options) { + return this.intercept(uri, "PATCH", requestBody, options); + } + + merge(uri, requestBody, options) { + return this.intercept(uri, "MERGE", requestBody, options); + } + + delete(uri, requestBody, options) { + return this.intercept(uri, "DELETE", requestBody, options); + } + + options(uri, requestBody, options) { + return this.intercept(uri, "OPTIONS", requestBody, options); + } + + // Returns the list of keys for non-optional Interceptors that haven't been completed yet. + // TODO: This assumes that completed mocks are removed from the keyedInterceptors list + // (when persistence is off). We should change that (and this) in future. + pendingMocks() { + return this.activeMocks().filter((key) => + this.keyedInterceptors[key].some( + ({ interceptionCounter, optional }) => { + const persistedAndUsed = + this._persist && interceptionCounter > 0; + return !persistedAndUsed && !optional; + } + ) + ); + } + + // Returns all keyedInterceptors that are active. + // This includes incomplete interceptors, persisted but complete interceptors, and + // optional interceptors, but not non-persisted and completed interceptors. + activeMocks() { + return Object.keys(this.keyedInterceptors); + } + + isDone() { + if (!isOn()) { + return true; + } + + return this.pendingMocks().length === 0; + } + + done() { + assert.ok( + this.isDone(), + `Mocks not yet satisfied:\n${this.pendingMocks().join("\n")}` + ); + } + + buildFilter() { + const filteringArguments = arguments; + + if (arguments[0] instanceof RegExp) { + return function (candidate) { + /* istanbul ignore if */ + if (typeof candidate !== "string") { + // Given the way nock is written, it seems like `candidate` will always + // be a string, regardless of what options might be passed to it. + // However the code used to contain a truthiness test of `candidate`. + // The check is being preserved for now. + throw Error( + `Nock internal assertion failed: typeof candidate is ${typeof candidate}. If you encounter this error, please report it as a bug.` + ); + } + return candidate.replace( + filteringArguments[0], + filteringArguments[1] + ); + }; + } else if (typeof arguments[0] === "function") { + return arguments[0]; + } + } + + filteringPath() { + this.transformPathFunction = this.buildFilter.apply(this, arguments); + if (!this.transformPathFunction) { + throw new Error( + "Invalid arguments: filtering path should be a function or a regular expression" + ); + } + return this; + } + + filteringRequestBody() { + this.transformRequestBodyFunction = this.buildFilter.apply( + this, + arguments + ); + if (!this.transformRequestBodyFunction) { + throw new Error( + "Invalid arguments: filtering request body should be a function or a regular expression" + ); + } + return this; + } + + matchHeader(name, value) { + // We use lower-case header field names throughout Nock. + this.matchHeaders.push({ name: name.toLowerCase(), value }); + return this; + } + + defaultReplyHeaders(headers) { + this._defaultReplyHeaders = common.headersInputToRawArray(headers); + return this; + } + + persist(flag = true) { + if (typeof flag !== "boolean") { + throw new Error("Invalid arguments: argument should be a boolean"); + } + this._persist = flag; + return this; + } + + /** + * @private + * @returns {boolean} + */ + shouldPersist() { + return this._persist; + } + + replyContentLength() { + this.contentLen = true; + return this; + } + + replyDate(d) { + this.date = d || new Date(); + return this; + } + + clone() { + return new Scope(this.basePath, this.scopeOptions); + } + } + + function loadDefs(path) { + if (!fs) { + throw new Error("No fs"); + } + + const contents = fs.readFileSync(path); + return JSON.parse(contents); + } + + function load(path) { + return define(loadDefs(path)); + } + + function getStatusFromDefinition(nockDef) { + // Backward compatibility for when `status` was encoded as string in `reply`. + if (nockDef.reply !== undefined) { + const parsedReply = parseInt(nockDef.reply, 10); + if (isNaN(parsedReply)) { + throw Error("`reply`, when present, must be a numeric string"); + } + + return parsedReply; + } + + const DEFAULT_STATUS_OK = 200; + return nockDef.status || DEFAULT_STATUS_OK; + } + + function getScopeFromDefinition(nockDef) { + // Backward compatibility for when `port` was part of definition. + if (nockDef.port !== undefined) { + // Include `port` into scope if it doesn't exist. + const options = url.parse(nockDef.scope); + if (options.port === null) { + return `${nockDef.scope}:${nockDef.port}`; } else { - logging(out) + if (parseInt(options.port) !== parseInt(nockDef.port)) { + throw new Error( + "Mismatched port numbers in scope and port properties of nock definition." + ); + } } } - }) - let encoding - // We need to be aware of changes to the stream's encoding so that we - // don't accidentally mangle the data. - const { setEncoding } = res - res.setEncoding = function (newEncoding) { - encoding = newEncoding - return setEncoding.apply(this, arguments) + return nockDef.scope; } - const dataChunks = [] - // Replace res.push with our own implementation that stores chunks - const origResPush = res.push - res.push = function (data) { - if (data) { - if (encoding) { - data = Buffer.from(data, encoding) + function tryJsonParse(string) { + try { + return JSON.parse(string); + } catch (err) { + return string; + } + } + + function define(nockDefs) { + const scopes = []; + + nockDefs.forEach(function (nockDef) { + const nscope = getScopeFromDefinition(nockDef); + const npath = nockDef.path; + if (!nockDef.method) { + throw Error("Method is required"); } - dataChunks.push(data) + const method = nockDef.method.toLowerCase(); + const status = getStatusFromDefinition(nockDef); + const rawHeaders = nockDef.rawHeaders || []; + const reqheaders = nockDef.reqheaders || {}; + const badheaders = nockDef.badheaders || []; + const options = { ...nockDef.options }; + + // We use request headers for both filtering (see below) and mocking. + // Here we are setting up mocked request headers but we don't want to + // be changing the user's options object so we clone it first. + options.reqheaders = reqheaders; + options.badheaders = badheaders; + + // Response is not always JSON as it could be a string or binary data or + // even an array of binary buffers (e.g. when content is encoded). + let response; + if (!nockDef.response) { + response = ""; + // TODO: Rename `responseIsBinary` to `responseIsUtf8Representable`. + } else if (nockDef.responseIsBinary) { + response = Buffer.from(nockDef.response, "hex"); + } else { + response = + typeof nockDef.response === "string" + ? tryJsonParse(nockDef.response) + : nockDef.response; + } + + const scope = new Scope(nscope, options); + + // If request headers were specified filter by them. + Object.entries(reqheaders).forEach(([fieldName, value]) => { + scope.matchHeader(fieldName, value); + }); + + const acceptableFilters = ["filteringRequestBody", "filteringPath"]; + acceptableFilters.forEach((filter) => { + if (nockDef[filter]) { + scope[filter](nockDef[filter]); + } + }); + + scope + .intercept(npath, method, nockDef.body) + .reply(status, response, rawHeaders); + + scopes.push(scope); + }); + + return scopes; + } + + module.exports = { + Scope, + load, + loadDefs, + define, + }; + + /***/ + }, + + /***/ 5676: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const { EventEmitter } = __nccwpck_require__(2361); + const debug = __nccwpck_require__(8237)("nock.socket"); + + module.exports = class Socket extends EventEmitter { + constructor(options) { + super(); + + // Pretend this is a TLSSocket + if (options.proto === "https") { + // https://github.com/nock/nock/issues/158 + this.authorized = true; + // https://github.com/nock/nock/issues/2147 + this.encrypted = true; + } + + this.bufferSize = 0; + this.writableLength = 0; + this.writable = true; + this.readable = true; + this.pending = false; + this.destroyed = false; + this.connecting = true; + + // Undocumented flag used by ClientRequest to ensure errors aren't double-fired + this._hadError = false; + + // Maximum allowed delay. 0 means unlimited. + this.timeout = 0; + + const ipv6 = options.family === 6; + this.remoteFamily = ipv6 ? "IPv6" : "IPv4"; + this.localAddress = this.remoteAddress = ipv6 ? "::1" : "127.0.0.1"; + this.localPort = this.remotePort = parseInt(options.port); } - return origResPush.call(res, data) - } + setNoDelay() {} + setKeepAlive() {} + resume() {} + ref() {} + unref() {} + write() {} - if (callback) { - callback(res, options, callback) - } - - debug('finished setting up intercepting') - - // We override both the http and the https modules; when we are - // serializing the request, we need to know which was called. - // By stuffing the state, we can make sure that nock records - // the intended protocol. - if (proto === 'https') { - options.proto = 'https' - } - }) - - const recordChunk = (chunk, encoding) => { - debug(thisRecordingId, 'new', proto, 'body chunk') - if (!Buffer.isBuffer(chunk)) { - chunk = Buffer.from(chunk, encoding) - } - bodyChunks.push(chunk) - } - - const oldWrite = req.write - req.write = function (chunk, encoding) { - if (typeof chunk !== 'undefined') { - recordChunk(chunk, encoding) - oldWrite.apply(req, arguments) - } else { - throw new Error('Data was undefined.') - } - } - - // Starting in Node 8, `OutgoingMessage.end()` directly calls an internal - // `write_` function instead of proxying to the public - // `OutgoingMessage.write()` method, so we have to wrap `end` too. - const oldEnd = req.end - req.end = function (chunk, encoding, callback) { - debug('req.end') - if (typeof chunk === 'function') { - callback = chunk - chunk = null - } else if (typeof encoding === 'function') { - callback = encoding - encoding = null - } - - if (chunk) { - recordChunk(chunk, encoding) - } - oldEnd.call(req, chunk, encoding, callback) - } - - return req - }) -} - -// Restore *all* the overridden http/https modules' properties. -function restore() { - debug( - currentRecordingId, - 'restoring all the overridden http/https properties', - ) - - common.restoreOverriddenRequests() - restoreOverriddenClientRequest() - recordingInProgress = false -} - -function clear() { - outputs = [] -} - -module.exports = { - record, - outputs: () => outputs, - restore, - clear, -} - - -/***/ }), - -/***/ 7004: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -/** - * @module nock/scope - */ -const { addInterceptor, isOn } = __nccwpck_require__(7607) -const common = __nccwpck_require__(1521) -const assert = __nccwpck_require__(9491) -const url = __nccwpck_require__(7310) -const debug = __nccwpck_require__(8237)('nock.scope') -const { EventEmitter } = __nccwpck_require__(2361) -const Interceptor = __nccwpck_require__(5419) - -const { URL, Url: LegacyUrl } = url -let fs - -try { - fs = __nccwpck_require__(7147) -} catch (err) { - // do nothing, we're in the browser -} - -/** - * Normalizes the passed url for consistent internal processing - * @param {string|LegacyUrl|URL} u - */ -function normalizeUrl(u) { - if (!(u instanceof URL)) { - if (u instanceof LegacyUrl) { - return normalizeUrl(new URL(url.format(u))) - } - // If the url is invalid, let the URL library report it - return normalizeUrl(new URL(u)) - } - - if (!/https?:/.test(u.protocol)) { - throw new TypeError( - `Protocol '${u.protocol}' not recognized. This commonly occurs when a hostname and port are included without a protocol, producing a URL that is valid but confusing, and probably not what you want.`, - ) - } - - return { - href: u.href, - origin: u.origin, - protocol: u.protocol, - username: u.username, - password: u.password, - host: u.host, - hostname: - // strip brackets from IPv6 - typeof u.hostname === 'string' && u.hostname.startsWith('[') - ? u.hostname.slice(1, -1) - : u.hostname, - port: u.port || (u.protocol === 'http:' ? 80 : 443), - pathname: u.pathname, - search: u.search, - searchParams: u.searchParams, - hash: u.hash, - } -} - -/** - * @param {string|RegExp|LegacyUrl|URL} basePath - * @param {Object} options - * @param {boolean} options.allowUnmocked - * @param {string[]} options.badheaders - * @param {function} options.conditionally - * @param {boolean} options.encodedQueryParams - * @param {function} options.filteringScope - * @param {Object} options.reqheaders - * @constructor - */ -class Scope extends EventEmitter { - constructor(basePath, options) { - super() - - this.keyedInterceptors = {} - this.interceptors = [] - this.transformPathFunction = null - this.transformRequestBodyFunction = null - this.matchHeaders = [] - this.scopeOptions = options || {} - this.urlParts = {} - this._persist = false - this.contentLen = false - this.date = null - this.basePath = basePath - this.basePathname = '' - this.port = null - this._defaultReplyHeaders = [] - - let logNamespace = String(basePath) - - if (!(basePath instanceof RegExp)) { - this.urlParts = normalizeUrl(basePath) - this.port = this.urlParts.port - this.basePathname = this.urlParts.pathname.replace(/\/$/, '') - this.basePath = `${this.urlParts.protocol}//${this.urlParts.hostname}:${this.port}` - logNamespace = this.urlParts.host - } - - this.logger = debug.extend(logNamespace) - } - - add(key, interceptor) { - if (!(key in this.keyedInterceptors)) { - this.keyedInterceptors[key] = [] - } - this.keyedInterceptors[key].push(interceptor) - addInterceptor( - this.basePath, - interceptor, - this, - this.scopeOptions, - this.urlParts.hostname, - ) - } - - remove(key, interceptor) { - if (this._persist) { - return - } - const arr = this.keyedInterceptors[key] - if (arr) { - arr.splice(arr.indexOf(interceptor), 1) - if (arr.length === 0) { - delete this.keyedInterceptors[key] - } - } - } - - intercept(uri, method, requestBody, interceptorOptions) { - const ic = new Interceptor( - this, - uri, - method, - requestBody, - interceptorOptions, - ) - - this.interceptors.push(ic) - return ic - } - - get(uri, requestBody, options) { - return this.intercept(uri, 'GET', requestBody, options) - } - - post(uri, requestBody, options) { - return this.intercept(uri, 'POST', requestBody, options) - } - - put(uri, requestBody, options) { - return this.intercept(uri, 'PUT', requestBody, options) - } - - head(uri, requestBody, options) { - return this.intercept(uri, 'HEAD', requestBody, options) - } - - patch(uri, requestBody, options) { - return this.intercept(uri, 'PATCH', requestBody, options) - } - - merge(uri, requestBody, options) { - return this.intercept(uri, 'MERGE', requestBody, options) - } - - delete(uri, requestBody, options) { - return this.intercept(uri, 'DELETE', requestBody, options) - } - - options(uri, requestBody, options) { - return this.intercept(uri, 'OPTIONS', requestBody, options) - } - - // Returns the list of keys for non-optional Interceptors that haven't been completed yet. - // TODO: This assumes that completed mocks are removed from the keyedInterceptors list - // (when persistence is off). We should change that (and this) in future. - pendingMocks() { - return this.activeMocks().filter(key => - this.keyedInterceptors[key].some(({ interceptionCounter, optional }) => { - const persistedAndUsed = this._persist && interceptionCounter > 0 - return !persistedAndUsed && !optional - }), - ) - } - - // Returns all keyedInterceptors that are active. - // This includes incomplete interceptors, persisted but complete interceptors, and - // optional interceptors, but not non-persisted and completed interceptors. - activeMocks() { - return Object.keys(this.keyedInterceptors) - } - - isDone() { - if (!isOn()) { - return true - } - - return this.pendingMocks().length === 0 - } - - done() { - assert.ok( - this.isDone(), - `Mocks not yet satisfied:\n${this.pendingMocks().join('\n')}`, - ) - } - - buildFilter() { - const filteringArguments = arguments - - if (arguments[0] instanceof RegExp) { - return function (candidate) { - /* istanbul ignore if */ - if (typeof candidate !== 'string') { - // Given the way nock is written, it seems like `candidate` will always - // be a string, regardless of what options might be passed to it. - // However the code used to contain a truthiness test of `candidate`. - // The check is being preserved for now. - throw Error( - `Nock internal assertion failed: typeof candidate is ${typeof candidate}. If you encounter this error, please report it as a bug.`, - ) + address() { + return { + port: this.remotePort, + family: this.remoteFamily, + address: this.remoteAddress, + }; + } + + setTimeout(timeoutMs, fn) { + this.timeout = timeoutMs; + if (fn) { + this.once("timeout", fn); + } + return this; + } + + /** + * Artificial delay that will trip socket timeouts when appropriate. + * + * Doesn't actually wait for time to pass. + * Timeout events don't necessarily end the request. + * While many clients choose to abort the request upon a timeout, Node itself does not. + */ + applyDelay(delayMs) { + if (this.timeout && delayMs > this.timeout) { + debug("socket timeout"); + this.emit("timeout"); + } + } + + getPeerCertificate() { + return Buffer.from( + (Math.random() * 10000 + Date.now()).toString() + ).toString("base64"); + } + + /** + * Denotes that no more I/O activity should happen on this socket. + * + * The implementation in Node if far more complex as it juggles underlying async streams. + * For the purposes of Nock, we just need it to set some flags and on the first call + * emit a 'close' and optional 'error' event. Both events propagate through the request object. + */ + destroy(err) { + if (this.destroyed) { + return this; + } + + debug("socket destroy"); + this.destroyed = true; + this.readable = this.writable = false; + this.readableEnded = this.writableFinished = true; + + process.nextTick(() => { + if (err) { + this._hadError = true; + this.emit("error", err); + } + this.emit("close"); + }); + + return this; + } + }; + + /***/ + }, + + /***/ 7760: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + /*! node-domexception. MIT License. Jimmy Wärting */ + + if (!globalThis.DOMException) { + try { + const { MessageChannel } = __nccwpck_require__(1267), + port = new MessageChannel().port1, + ab = new ArrayBuffer(); + port.postMessage(ab, [ab, ab]); + } catch (err) { + err.constructor.name === "DOMException" && + (globalThis.DOMException = err.constructor); } - return candidate.replace(filteringArguments[0], filteringArguments[1]) } - } else if (typeof arguments[0] === 'function') { - return arguments[0] - } - } - filteringPath() { - this.transformPathFunction = this.buildFilter.apply(this, arguments) - if (!this.transformPathFunction) { - throw new Error( - 'Invalid arguments: filtering path should be a function or a regular expression', - ) - } - return this - } + module.exports = globalThis.DOMException; - filteringRequestBody() { - this.transformRequestBodyFunction = this.buildFilter.apply(this, arguments) - if (!this.transformRequestBodyFunction) { - throw new Error( - 'Invalid arguments: filtering request body should be a function or a regular expression', - ) - } - return this - } + /***/ + }, - matchHeader(name, value) { - // We use lower-case header field names throughout Nock. - this.matchHeaders.push({ name: name.toLowerCase(), value }) - return this - } + /***/ 467: /***/ (module, exports, __nccwpck_require__) => { + "use strict"; - defaultReplyHeaders(headers) { - this._defaultReplyHeaders = common.headersInputToRawArray(headers) - return this - } + Object.defineProperty(exports, "__esModule", { value: true }); - persist(flag = true) { - if (typeof flag !== 'boolean') { - throw new Error('Invalid arguments: argument should be a boolean') - } - this._persist = flag - return this - } - - /** - * @private - * @returns {boolean} - */ - shouldPersist() { - return this._persist - } - - replyContentLength() { - this.contentLen = true - return this - } - - replyDate(d) { - this.date = d || new Date() - return this - } - - clone() { - return new Scope(this.basePath, this.scopeOptions) - } -} - -function loadDefs(path) { - if (!fs) { - throw new Error('No fs') - } - - const contents = fs.readFileSync(path) - return JSON.parse(contents) -} - -function load(path) { - return define(loadDefs(path)) -} - -function getStatusFromDefinition(nockDef) { - // Backward compatibility for when `status` was encoded as string in `reply`. - if (nockDef.reply !== undefined) { - const parsedReply = parseInt(nockDef.reply, 10) - if (isNaN(parsedReply)) { - throw Error('`reply`, when present, must be a numeric string') - } - - return parsedReply - } - - const DEFAULT_STATUS_OK = 200 - return nockDef.status || DEFAULT_STATUS_OK -} - -function getScopeFromDefinition(nockDef) { - // Backward compatibility for when `port` was part of definition. - if (nockDef.port !== undefined) { - // Include `port` into scope if it doesn't exist. - const options = url.parse(nockDef.scope) - if (options.port === null) { - return `${nockDef.scope}:${nockDef.port}` - } else { - if (parseInt(options.port) !== parseInt(nockDef.port)) { - throw new Error( - 'Mismatched port numbers in scope and port properties of nock definition.', - ) + function _interopDefault(ex) { + return ex && typeof ex === "object" && "default" in ex + ? ex["default"] + : ex; } - } - } - return nockDef.scope -} + var Stream = _interopDefault(__nccwpck_require__(2781)); + var http = _interopDefault(__nccwpck_require__(3685)); + var Url = _interopDefault(__nccwpck_require__(7310)); + var whatwgUrl = _interopDefault(__nccwpck_require__(8665)); + var https = _interopDefault(__nccwpck_require__(5687)); + var zlib = _interopDefault(__nccwpck_require__(9796)); -function tryJsonParse(string) { - try { - return JSON.parse(string) - } catch (err) { - return string - } -} + // Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js -function define(nockDefs) { - const scopes = [] + // fix for "Readable" isn't a named export issue + const Readable = Stream.Readable; - nockDefs.forEach(function (nockDef) { - const nscope = getScopeFromDefinition(nockDef) - const npath = nockDef.path - if (!nockDef.method) { - throw Error('Method is required') - } - const method = nockDef.method.toLowerCase() - const status = getStatusFromDefinition(nockDef) - const rawHeaders = nockDef.rawHeaders || [] - const reqheaders = nockDef.reqheaders || {} - const badheaders = nockDef.badheaders || [] - const options = { ...nockDef.options } + const BUFFER = Symbol("buffer"); + const TYPE = Symbol("type"); - // We use request headers for both filtering (see below) and mocking. - // Here we are setting up mocked request headers but we don't want to - // be changing the user's options object so we clone it first. - options.reqheaders = reqheaders - options.badheaders = badheaders + class Blob { + constructor() { + this[TYPE] = ""; - // Response is not always JSON as it could be a string or binary data or - // even an array of binary buffers (e.g. when content is encoded). - let response - if (!nockDef.response) { - response = '' - // TODO: Rename `responseIsBinary` to `responseIsUtf8Representable`. - } else if (nockDef.responseIsBinary) { - response = Buffer.from(nockDef.response, 'hex') - } else { - response = - typeof nockDef.response === 'string' - ? tryJsonParse(nockDef.response) - : nockDef.response - } + const blobParts = arguments[0]; + const options = arguments[1]; - const scope = new Scope(nscope, options) + const buffers = []; + let size = 0; - // If request headers were specified filter by them. - Object.entries(reqheaders).forEach(([fieldName, value]) => { - scope.matchHeader(fieldName, value) - }) + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from( + element.buffer, + element.byteOffset, + element.byteLength + ); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from( + typeof element === "string" ? element : String(element) + ); + } + size += buffer.length; + buffers.push(buffer); + } + } - const acceptableFilters = ['filteringRequestBody', 'filteringPath'] - acceptableFilters.forEach(filter => { - if (nockDef[filter]) { - scope[filter](nockDef[filter]) + this[BUFFER] = Buffer.concat(buffers); + + let type = + options && + options.type !== undefined && + String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice( + buf.byteOffset, + buf.byteOffset + buf.byteLength + ); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return "[object Blob]"; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice( + relativeStart, + relativeStart + span + ); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } } - }) - scope - .intercept(npath, method, nockDef.body) - .reply(status, response, rawHeaders) + Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true }, + }); - scopes.push(scope) - }) + Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: "Blob", + writable: false, + enumerable: false, + configurable: true, + }); - return scopes -} + /** + * fetch-error.js + * + * FetchError interface for operational errors + */ -module.exports = { - Scope, - load, - loadDefs, - define, -} + /** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ + function FetchError(message, type, systemError) { + Error.call(this, message); + this.message = message; + this.type = type; -/***/ }), + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } -/***/ 5676: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const { EventEmitter } = __nccwpck_require__(2361) -const debug = __nccwpck_require__(8237)('nock.socket') - -module.exports = class Socket extends EventEmitter { - constructor(options) { - super() - - // Pretend this is a TLSSocket - if (options.proto === 'https') { - // https://github.com/nock/nock/issues/158 - this.authorized = true - // https://github.com/nock/nock/issues/2147 - this.encrypted = true - } - - this.bufferSize = 0 - this.writableLength = 0 - this.writable = true - this.readable = true - this.pending = false - this.destroyed = false - this.connecting = true - - // Undocumented flag used by ClientRequest to ensure errors aren't double-fired - this._hadError = false - - // Maximum allowed delay. 0 means unlimited. - this.timeout = 0 - - const ipv6 = options.family === 6 - this.remoteFamily = ipv6 ? 'IPv6' : 'IPv4' - this.localAddress = this.remoteAddress = ipv6 ? '::1' : '127.0.0.1' - this.localPort = this.remotePort = parseInt(options.port) - } - - setNoDelay() {} - setKeepAlive() {} - resume() {} - ref() {} - unref() {} - write() {} - - address() { - return { - port: this.remotePort, - family: this.remoteFamily, - address: this.remoteAddress, - } - } - - setTimeout(timeoutMs, fn) { - this.timeout = timeoutMs - if (fn) { - this.once('timeout', fn) - } - return this - } - - /** - * Artificial delay that will trip socket timeouts when appropriate. - * - * Doesn't actually wait for time to pass. - * Timeout events don't necessarily end the request. - * While many clients choose to abort the request upon a timeout, Node itself does not. - */ - applyDelay(delayMs) { - if (this.timeout && delayMs > this.timeout) { - debug('socket timeout') - this.emit('timeout') - } - } - - getPeerCertificate() { - return Buffer.from( - (Math.random() * 10000 + Date.now()).toString(), - ).toString('base64') - } - - /** - * Denotes that no more I/O activity should happen on this socket. - * - * The implementation in Node if far more complex as it juggles underlying async streams. - * For the purposes of Nock, we just need it to set some flags and on the first call - * emit a 'close' and optional 'error' event. Both events propagate through the request object. - */ - destroy(err) { - if (this.destroyed) { - return this - } - - debug('socket destroy') - this.destroyed = true - this.readable = this.writable = false - this.readableEnded = this.writableFinished = true - - process.nextTick(() => { - if (err) { - this._hadError = true - this.emit('error', err) + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); } - this.emit('close') - }) - - return this - } -} - - -/***/ }), - -/***/ 7760: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -/*! node-domexception. MIT License. Jimmy Wärting */ - -if (!globalThis.DOMException) { - try { - const { MessageChannel } = __nccwpck_require__(1267), - port = new MessageChannel().port1, - ab = new ArrayBuffer() - port.postMessage(ab, [ab, ab]) - } catch (err) { - err.constructor.name === 'DOMException' && ( - globalThis.DOMException = err.constructor - ) - } -} - -module.exports = globalThis.DOMException - - -/***/ }), - -/***/ 467: -/***/ ((module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var Stream = _interopDefault(__nccwpck_require__(2781)); -var http = _interopDefault(__nccwpck_require__(3685)); -var Url = _interopDefault(__nccwpck_require__(7310)); -var whatwgUrl = _interopDefault(__nccwpck_require__(8665)); -var https = _interopDefault(__nccwpck_require__(5687)); -var zlib = _interopDefault(__nccwpck_require__(9796)); - -// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js - -// fix for "Readable" isn't a named export issue -const Readable = Stream.Readable; - -const BUFFER = Symbol('buffer'); -const TYPE = Symbol('type'); - -class Blob { - constructor() { - this[TYPE] = ''; - - const blobParts = arguments[0]; - const options = arguments[1]; - - const buffers = []; - let size = 0; - - if (blobParts) { - const a = blobParts; - const length = Number(a.length); - for (let i = 0; i < length; i++) { - const element = a[i]; - let buffer; - if (element instanceof Buffer) { - buffer = element; - } else if (ArrayBuffer.isView(element)) { - buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); - } else if (element instanceof ArrayBuffer) { - buffer = Buffer.from(element); - } else if (element instanceof Blob) { - buffer = element[BUFFER]; - } else { - buffer = Buffer.from(typeof element === 'string' ? element : String(element)); - } - size += buffer.length; - buffers.push(buffer); - } - } - - this[BUFFER] = Buffer.concat(buffers); - - let type = options && options.type !== undefined && String(options.type).toLowerCase(); - if (type && !/[^\u0020-\u007E]/.test(type)) { - this[TYPE] = type; - } - } - get size() { - return this[BUFFER].length; - } - get type() { - return this[TYPE]; - } - text() { - return Promise.resolve(this[BUFFER].toString()); - } - arrayBuffer() { - const buf = this[BUFFER]; - const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); - return Promise.resolve(ab); - } - stream() { - const readable = new Readable(); - readable._read = function () {}; - readable.push(this[BUFFER]); - readable.push(null); - return readable; - } - toString() { - return '[object Blob]'; - } - slice() { - const size = this.size; - - const start = arguments[0]; - const end = arguments[1]; - let relativeStart, relativeEnd; - if (start === undefined) { - relativeStart = 0; - } else if (start < 0) { - relativeStart = Math.max(size + start, 0); - } else { - relativeStart = Math.min(start, size); - } - if (end === undefined) { - relativeEnd = size; - } else if (end < 0) { - relativeEnd = Math.max(size + end, 0); - } else { - relativeEnd = Math.min(end, size); - } - const span = Math.max(relativeEnd - relativeStart, 0); - - const buffer = this[BUFFER]; - const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); - const blob = new Blob([], { type: arguments[2] }); - blob[BUFFER] = slicedBuffer; - return blob; - } -} - -Object.defineProperties(Blob.prototype, { - size: { enumerable: true }, - type: { enumerable: true }, - slice: { enumerable: true } -}); - -Object.defineProperty(Blob.prototype, Symbol.toStringTag, { - value: 'Blob', - writable: false, - enumerable: false, - configurable: true -}); - -/** - * fetch-error.js - * - * FetchError interface for operational errors - */ - -/** - * Create FetchError instance - * - * @param String message Error message for human - * @param String type Error type for machine - * @param String systemError For Node.js system error - * @return FetchError - */ -function FetchError(message, type, systemError) { - Error.call(this, message); - - this.message = message; - this.type = type; - - // when err.type is `system`, err.code contains system error code - if (systemError) { - this.code = this.errno = systemError.code; - } - - // hide custom error implementation details from end-users - Error.captureStackTrace(this, this.constructor); -} - -FetchError.prototype = Object.create(Error.prototype); -FetchError.prototype.constructor = FetchError; -FetchError.prototype.name = 'FetchError'; - -let convert; -try { - convert = (__nccwpck_require__(2877).convert); -} catch (e) {} - -const INTERNALS = Symbol('Body internals'); - -// fix an issue where "PassThrough" isn't a named export for node <10 -const PassThrough = Stream.PassThrough; - -/** - * Body mixin - * - * Ref: https://fetch.spec.whatwg.org/#body - * - * @param Stream body Readable stream - * @param Object opts Response options - * @return Void - */ -function Body(body) { - var _this = this; - - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref$size = _ref.size; - - let size = _ref$size === undefined ? 0 : _ref$size; - var _ref$timeout = _ref.timeout; - let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; - - if (body == null) { - // body is undefined or null - body = null; - } else if (isURLSearchParams(body)) { - // body is a URLSearchParams - body = Buffer.from(body.toString()); - } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { - // body is ArrayBuffer - body = Buffer.from(body); - } else if (ArrayBuffer.isView(body)) { - // body is ArrayBufferView - body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); - } else if (body instanceof Stream) ; else { - // none of the above - // coerce to string then buffer - body = Buffer.from(String(body)); - } - this[INTERNALS] = { - body, - disturbed: false, - error: null - }; - this.size = size; - this.timeout = timeout; - - if (body instanceof Stream) { - body.on('error', function (err) { - const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); - _this[INTERNALS].error = error; - }); - } -} - -Body.prototype = { - get body() { - return this[INTERNALS].body; - }, - - get bodyUsed() { - return this[INTERNALS].disturbed; - }, - - /** - * Decode response as ArrayBuffer - * - * @return Promise - */ - arrayBuffer() { - return consumeBody.call(this).then(function (buf) { - return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); - }); - }, - - /** - * Return raw response as Blob - * - * @return Promise - */ - blob() { - let ct = this.headers && this.headers.get('content-type') || ''; - return consumeBody.call(this).then(function (buf) { - return Object.assign( - // Prevent copying - new Blob([], { - type: ct.toLowerCase() - }), { - [BUFFER]: buf - }); - }); - }, - - /** - * Decode response as json - * - * @return Promise - */ - json() { - var _this2 = this; - - return consumeBody.call(this).then(function (buffer) { - try { - return JSON.parse(buffer.toString()); - } catch (err) { - return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); - } - }); - }, - - /** - * Decode response as text - * - * @return Promise - */ - text() { - return consumeBody.call(this).then(function (buffer) { - return buffer.toString(); - }); - }, - - /** - * Decode response as buffer (non-spec api) - * - * @return Promise - */ - buffer() { - return consumeBody.call(this); - }, - - /** - * Decode response as text, while automatically detecting the encoding and - * trying to decode to UTF-8 (non-spec api) - * - * @return Promise - */ - textConverted() { - var _this3 = this; - - return consumeBody.call(this).then(function (buffer) { - return convertBody(buffer, _this3.headers); - }); - } -}; - -// In browsers, all properties are enumerable. -Object.defineProperties(Body.prototype, { - body: { enumerable: true }, - bodyUsed: { enumerable: true }, - arrayBuffer: { enumerable: true }, - blob: { enumerable: true }, - json: { enumerable: true }, - text: { enumerable: true } -}); - -Body.mixIn = function (proto) { - for (const name of Object.getOwnPropertyNames(Body.prototype)) { - // istanbul ignore else: future proof - if (!(name in proto)) { - const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); - Object.defineProperty(proto, name, desc); - } - } -}; - -/** - * Consume and convert an entire Body to a Buffer. - * - * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body - * - * @return Promise - */ -function consumeBody() { - var _this4 = this; - - if (this[INTERNALS].disturbed) { - return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); - } - - this[INTERNALS].disturbed = true; - - if (this[INTERNALS].error) { - return Body.Promise.reject(this[INTERNALS].error); - } - - let body = this.body; - - // body is null - if (body === null) { - return Body.Promise.resolve(Buffer.alloc(0)); - } - - // body is blob - if (isBlob(body)) { - body = body.stream(); - } - - // body is buffer - if (Buffer.isBuffer(body)) { - return Body.Promise.resolve(body); - } - - // istanbul ignore if: should never happen - if (!(body instanceof Stream)) { - return Body.Promise.resolve(Buffer.alloc(0)); - } - - // body is stream - // get ready to actually consume the body - let accum = []; - let accumBytes = 0; - let abort = false; - - return new Body.Promise(function (resolve, reject) { - let resTimeout; - - // allow timeout on slow response body - if (_this4.timeout) { - resTimeout = setTimeout(function () { - abort = true; - reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); - }, _this4.timeout); - } - - // handle stream errors - body.on('error', function (err) { - if (err.name === 'AbortError') { - // if the request was aborted, reject with this Error - abort = true; - reject(err); - } else { - // other errors, such as incorrect content-encoding - reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); - } - }); - - body.on('data', function (chunk) { - if (abort || chunk === null) { - return; - } - - if (_this4.size && accumBytes + chunk.length > _this4.size) { - abort = true; - reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); - return; - } - - accumBytes += chunk.length; - accum.push(chunk); - }); - - body.on('end', function () { - if (abort) { - return; - } - - clearTimeout(resTimeout); - - try { - resolve(Buffer.concat(accum, accumBytes)); - } catch (err) { - // handle streams that have accumulated too much data (issue #414) - reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); - } - }); - }); -} - -/** - * Detect buffer encoding and convert to target encoding - * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding - * - * @param Buffer buffer Incoming buffer - * @param String encoding Target encoding - * @return String - */ -function convertBody(buffer, headers) { - if (typeof convert !== 'function') { - throw new Error('The package `encoding` must be installed to use the textConverted() function'); - } - - const ct = headers.get('content-type'); - let charset = 'utf-8'; - let res, str; - - // header - if (ct) { - res = /charset=([^;]*)/i.exec(ct); - } - - // no charset in content type, peek at response body for at most 1024 bytes - str = buffer.slice(0, 1024).toString(); - - // html5 - if (!res && str) { - res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; - - this[MAP] = Object.create(null); - - if (init instanceof Headers) { - const rawHeaders = init.raw(); - const headerNames = Object.keys(rawHeaders); - - for (const headerName of headerNames) { - for (const value of rawHeaders[headerName]) { - this.append(headerName, value); - } - } - - return; - } - - // We don't worry about converting prop to ByteString here as append() - // will handle it. - if (init == null) ; else if (typeof init === 'object') { - const method = init[Symbol.iterator]; - if (method != null) { - if (typeof method !== 'function') { - throw new TypeError('Header pairs must be iterable'); - } - - // sequence> - // Note: per spec we have to first exhaust the lists then process them - const pairs = []; - for (const pair of init) { - if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { - throw new TypeError('Each header pair must be iterable'); - } - pairs.push(Array.from(pair)); - } - - for (const pair of pairs) { - if (pair.length !== 2) { - throw new TypeError('Each header pair must be a name/value tuple'); - } - this.append(pair[0], pair[1]); - } - } else { - // record - for (const key of Object.keys(init)) { - const value = init[key]; - this.append(key, value); - } - } - } else { - throw new TypeError('Provided initializer must be an object'); - } - } - - /** - * Return combined header value given name - * - * @param String name Header name - * @return Mixed - */ - get(name) { - name = `${name}`; - validateName(name); - const key = find(this[MAP], name); - if (key === undefined) { - return null; - } - - return this[MAP][key].join(', '); - } - - /** - * Iterate over all headers - * - * @param Function callback Executed for each item with parameters (value, name, thisArg) - * @param Boolean thisArg `this` context for callback function - * @return Void - */ - forEach(callback) { - let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; - - let pairs = getHeaders(this); - let i = 0; - while (i < pairs.length) { - var _pairs$i = pairs[i]; - const name = _pairs$i[0], - value = _pairs$i[1]; - - callback.call(thisArg, value, name, this); - pairs = getHeaders(this); - i++; - } - } - - /** - * Overwrite header values given name - * - * @param String name Header name - * @param String value Header value - * @return Void - */ - set(name, value) { - name = `${name}`; - value = `${value}`; - validateName(name); - validateValue(value); - const key = find(this[MAP], name); - this[MAP][key !== undefined ? key : name] = [value]; - } - - /** - * Append a value onto existing header - * - * @param String name Header name - * @param String value Header value - * @return Void - */ - append(name, value) { - name = `${name}`; - value = `${value}`; - validateName(name); - validateValue(value); - const key = find(this[MAP], name); - if (key !== undefined) { - this[MAP][key].push(value); - } else { - this[MAP][name] = [value]; - } - } - - /** - * Check for header name existence - * - * @param String name Header name - * @return Boolean - */ - has(name) { - name = `${name}`; - validateName(name); - return find(this[MAP], name) !== undefined; - } - - /** - * Delete all header values given name - * - * @param String name Header name - * @return Void - */ - delete(name) { - name = `${name}`; - validateName(name); - const key = find(this[MAP], name); - if (key !== undefined) { - delete this[MAP][key]; - } - } - - /** - * Return raw headers (non-spec api) - * - * @return Object - */ - raw() { - return this[MAP]; - } - - /** - * Get an iterator on keys. - * - * @return Iterator - */ - keys() { - return createHeadersIterator(this, 'key'); - } - - /** - * Get an iterator on values. - * - * @return Iterator - */ - values() { - return createHeadersIterator(this, 'value'); - } - - /** - * Get an iterator on entries. - * - * This is the default iterator of the Headers object. - * - * @return Iterator - */ - [Symbol.iterator]() { - return createHeadersIterator(this, 'key+value'); - } -} -Headers.prototype.entries = Headers.prototype[Symbol.iterator]; - -Object.defineProperty(Headers.prototype, Symbol.toStringTag, { - value: 'Headers', - writable: false, - enumerable: false, - configurable: true -}); - -Object.defineProperties(Headers.prototype, { - get: { enumerable: true }, - forEach: { enumerable: true }, - set: { enumerable: true }, - append: { enumerable: true }, - has: { enumerable: true }, - delete: { enumerable: true }, - keys: { enumerable: true }, - values: { enumerable: true }, - entries: { enumerable: true } -}); - -function getHeaders(headers) { - let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; - - const keys = Object.keys(headers[MAP]).sort(); - return keys.map(kind === 'key' ? function (k) { - return k.toLowerCase(); - } : kind === 'value' ? function (k) { - return headers[MAP][k].join(', '); - } : function (k) { - return [k.toLowerCase(), headers[MAP][k].join(', ')]; - }); -} - -const INTERNAL = Symbol('internal'); - -function createHeadersIterator(target, kind) { - const iterator = Object.create(HeadersIteratorPrototype); - iterator[INTERNAL] = { - target, - kind, - index: 0 - }; - return iterator; -} - -const HeadersIteratorPrototype = Object.setPrototypeOf({ - next() { - // istanbul ignore if - if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { - throw new TypeError('Value of `this` is not a HeadersIterator'); - } - - var _INTERNAL = this[INTERNAL]; - const target = _INTERNAL.target, - kind = _INTERNAL.kind, - index = _INTERNAL.index; - - const values = getHeaders(target, kind); - const len = values.length; - if (index >= len) { - return { - value: undefined, - done: true - }; - } - - this[INTERNAL].index = index + 1; - - return { - value: values[index], - done: false - }; - } -}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); - -Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { - value: 'HeadersIterator', - writable: false, - enumerable: false, - configurable: true -}); - -/** - * Export the Headers object in a form that Node.js can consume. - * - * @param Headers headers - * @return Object - */ -function exportNodeCompatibleHeaders(headers) { - const obj = Object.assign({ __proto__: null }, headers[MAP]); - - // http.request() only supports string as Host header. This hack makes - // specifying custom Host header possible. - const hostHeaderKey = find(headers[MAP], 'Host'); - if (hostHeaderKey !== undefined) { - obj[hostHeaderKey] = obj[hostHeaderKey][0]; - } - - return obj; -} - -/** - * Create a Headers object from an object of headers, ignoring those that do - * not conform to HTTP grammar productions. - * - * @param Object obj Object of headers - * @return Headers - */ -function createHeadersLenient(obj) { - const headers = new Headers(); - for (const name of Object.keys(obj)) { - if (invalidTokenRegex.test(name)) { - continue; - } - if (Array.isArray(obj[name])) { - for (const val of obj[name]) { - if (invalidHeaderCharRegex.test(val)) { - continue; - } - if (headers[MAP][name] === undefined) { - headers[MAP][name] = [val]; - } else { - headers[MAP][name].push(val); - } - } - } else if (!invalidHeaderCharRegex.test(obj[name])) { - headers[MAP][name] = [obj[name]]; - } - } - return headers; -} - -const INTERNALS$1 = Symbol('Response internals'); - -// fix an issue where "STATUS_CODES" aren't a named export for node <10 -const STATUS_CODES = http.STATUS_CODES; - -/** - * Response class - * - * @param Stream body Readable stream - * @param Object opts Response options - * @return Void - */ -class Response { - constructor() { - let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - Body.call(this, body, opts); - - const status = opts.status || 200; - const headers = new Headers(opts.headers); - - if (body != null && !headers.has('Content-Type')) { - const contentType = extractContentType(body); - if (contentType) { - headers.append('Content-Type', contentType); - } - } - - this[INTERNALS$1] = { - url: opts.url, - status, - statusText: opts.statusText || STATUS_CODES[status], - headers, - counter: opts.counter - }; - } - - get url() { - return this[INTERNALS$1].url || ''; - } - - get status() { - return this[INTERNALS$1].status; - } - - /** - * Convenience property representing if the request ended normally - */ - get ok() { - return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; - } - - get redirected() { - return this[INTERNALS$1].counter > 0; - } - - get statusText() { - return this[INTERNALS$1].statusText; - } - - get headers() { - return this[INTERNALS$1].headers; - } - - /** - * Clone this response - * - * @return Response - */ - clone() { - return new Response(clone(this), { - url: this.url, - status: this.status, - statusText: this.statusText, - headers: this.headers, - ok: this.ok, - redirected: this.redirected - }); - } -} - -Body.mixIn(Response.prototype); - -Object.defineProperties(Response.prototype, { - url: { enumerable: true }, - status: { enumerable: true }, - ok: { enumerable: true }, - redirected: { enumerable: true }, - statusText: { enumerable: true }, - headers: { enumerable: true }, - clone: { enumerable: true } -}); - -Object.defineProperty(Response.prototype, Symbol.toStringTag, { - value: 'Response', - writable: false, - enumerable: false, - configurable: true -}); - -const INTERNALS$2 = Symbol('Request internals'); -const URL = Url.URL || whatwgUrl.URL; - -// fix an issue where "format", "parse" aren't a named export for node <10 -const parse_url = Url.parse; -const format_url = Url.format; - -/** - * Wrapper around `new URL` to handle arbitrary URLs - * - * @param {string} urlStr - * @return {void} - */ -function parseURL(urlStr) { - /* + + FetchError.prototype = Object.create(Error.prototype); + FetchError.prototype.constructor = FetchError; + FetchError.prototype.name = "FetchError"; + + let convert; + try { + convert = __nccwpck_require__(2877).convert; + } catch (e) {} + + const INTERNALS = Symbol("Body internals"); + + // fix an issue where "PassThrough" isn't a named export for node <10 + const PassThrough = Stream.PassThrough; + + /** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ + function Body(body) { + var _this = this; + + var _ref = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)); + else if (Buffer.isBuffer(body)); + else if ( + Object.prototype.toString.call(body) === "[object ArrayBuffer]" + ) { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream); + else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null, + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on("error", function (err) { + const error = + err.name === "AbortError" + ? err + : new FetchError( + `Invalid response body while trying to fetch ${_this.url}: ${err.message}`, + "system", + err + ); + _this[INTERNALS].error = error; + }); + } + } + + Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice( + buf.byteOffset, + buf.byteOffset + buf.byteLength + ); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = (this.headers && this.headers.get("content-type")) || ""; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase(), + }), + { + [BUFFER]: buf, + } + ); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject( + new FetchError( + `invalid json response body at ${_this2.url} reason: ${err.message}`, + "invalid-json" + ) + ); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + }, + }; + + // In browsers, all properties are enumerable. + Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true }, + }); + + Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } + }; + + /** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ + function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject( + new TypeError(`body used already for: ${this.url}`) + ); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject( + new FetchError( + `Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, + "body-timeout" + ) + ); + }, _this4.timeout); + } + + // handle stream errors + body.on("error", function (err) { + if (err.name === "AbortError") { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject( + new FetchError( + `Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, + "system", + err + ) + ); + } + }); + + body.on("data", function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject( + new FetchError( + `content size at ${_this4.url} over limit: ${_this4.size}`, + "max-size" + ) + ); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on("end", function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject( + new FetchError( + `Could not create Buffer from response body for ${_this4.url}: ${err.message}`, + "system", + err + ) + ); + } + }); + }); + } + + /** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ + function convertBody(buffer, headers) { + if (typeof convert !== "function") { + throw new Error( + "The package `encoding` must be installed to use the textConverted() function" + ); + } + + const ct = headers.get("content-type"); + let charset = "utf-8"; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined + ? arguments[0] + : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null); + else if (typeof init === "object") { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== "function") { + throw new TypeError("Header pairs must be iterable"); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if ( + typeof pair !== "object" || + typeof pair[Symbol.iterator] !== "function" + ) { + throw new TypeError("Each header pair must be iterable"); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError( + "Each header pair must be a name/value tuple" + ); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError("Provided initializer must be an object"); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(", "); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, "key"); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, "value"); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, "key+value"); + } + } + Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + + Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: "Headers", + writable: false, + enumerable: false, + configurable: true, + }); + + Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true }, + }); + + function getHeaders(headers) { + let kind = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : "key+value"; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map( + kind === "key" + ? function (k) { + return k.toLowerCase(); + } + : kind === "value" + ? function (k) { + return headers[MAP][k].join(", "); + } + : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(", ")]; + } + ); + } + + const INTERNAL = Symbol("internal"); + + function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0, + }; + return iterator; + } + + const HeadersIteratorPrototype = Object.setPrototypeOf( + { + next() { + // istanbul ignore if + if ( + !this || + Object.getPrototypeOf(this) !== HeadersIteratorPrototype + ) { + throw new TypeError("Value of `this` is not a HeadersIterator"); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true, + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false, + }; + }, + }, + Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())) + ); + + Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: "HeadersIterator", + writable: false, + enumerable: false, + configurable: true, + }); + + /** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ + function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], "Host"); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; + } + + /** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ + function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; + } + + const INTERNALS$1 = Symbol("Response internals"); + + // fix an issue where "STATUS_CODES" aren't a named export for node <10 + const STATUS_CODES = http.STATUS_CODES; + + /** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ + class Response { + constructor() { + let body = + arguments.length > 0 && arguments[0] !== undefined + ? arguments[0] + : null; + let opts = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has("Content-Type")) { + const contentType = extractContentType(body); + if (contentType) { + headers.append("Content-Type", contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter, + }; + } + + get url() { + return this[INTERNALS$1].url || ""; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return ( + this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300 + ); + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected, + }); + } + } + + Body.mixIn(Response.prototype); + + Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true }, + }); + + Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: "Response", + writable: false, + enumerable: false, + configurable: true, + }); + + const INTERNALS$2 = Symbol("Request internals"); + const URL = Url.URL || whatwgUrl.URL; + + // fix an issue where "format", "parse" aren't a named export for node <10 + const parse_url = Url.parse; + const format_url = Url.format; + + /** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ + function parseURL(urlStr) { + /* Check whether the URL is absolute or not Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 */ - if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { - urlStr = new URL(urlStr).toString(); - } - - // Fallback to old implementation for arbitrary URLs - return parse_url(urlStr); -} - -const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; - -/** - * Check if a value is an instance of Request. - * - * @param Mixed input - * @return Boolean - */ -function isRequest(input) { - return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; -} - -function isAbortSignal(signal) { - const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); - return !!(proto && proto.constructor.name === 'AbortSignal'); -} - -/** - * Request class - * - * @param Mixed input Url or Request instance - * @param Object init Custom options - * @return Void - */ -class Request { - constructor(input) { - let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - let parsedURL; - - // normalize input - if (!isRequest(input)) { - if (input && input.href) { - // in order to support Node.js' Url objects; though WHATWG's URL objects - // will fall into this branch also (since their `toString()` will return - // `href` property anyway) - parsedURL = parseURL(input.href); - } else { - // coerce input to a string before attempting to parse - parsedURL = parseURL(`${input}`); - } - input = {}; - } else { - parsedURL = parseURL(input.url); - } - - let method = init.method || input.method || 'GET'; - method = method.toUpperCase(); - - if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { - throw new TypeError('Request with GET/HEAD method cannot have body'); - } - - let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; - - Body.call(this, inputBody, { - timeout: init.timeout || input.timeout || 0, - size: init.size || input.size || 0 - }); - - const headers = new Headers(init.headers || input.headers || {}); - - if (inputBody != null && !headers.has('Content-Type')) { - const contentType = extractContentType(inputBody); - if (contentType) { - headers.append('Content-Type', contentType); - } - } - - let signal = isRequest(input) ? input.signal : null; - if ('signal' in init) signal = init.signal; - - if (signal != null && !isAbortSignal(signal)) { - throw new TypeError('Expected signal to be an instanceof AbortSignal'); - } - - this[INTERNALS$2] = { - method, - redirect: init.redirect || input.redirect || 'follow', - headers, - parsedURL, - signal - }; - - // node-fetch-only options - this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; - this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; - this.counter = init.counter || input.counter || 0; - this.agent = init.agent || input.agent; - } - - get method() { - return this[INTERNALS$2].method; - } - - get url() { - return format_url(this[INTERNALS$2].parsedURL); - } - - get headers() { - return this[INTERNALS$2].headers; - } - - get redirect() { - return this[INTERNALS$2].redirect; - } - - get signal() { - return this[INTERNALS$2].signal; - } - - /** - * Clone this request - * - * @return Request - */ - clone() { - return new Request(this); - } -} - -Body.mixIn(Request.prototype); - -Object.defineProperty(Request.prototype, Symbol.toStringTag, { - value: 'Request', - writable: false, - enumerable: false, - configurable: true -}); - -Object.defineProperties(Request.prototype, { - method: { enumerable: true }, - url: { enumerable: true }, - headers: { enumerable: true }, - redirect: { enumerable: true }, - clone: { enumerable: true }, - signal: { enumerable: true } -}); - -/** - * Convert a Request to Node.js http request options. - * - * @param Request A Request instance - * @return Object The options object to be passed to http.request - */ -function getNodeRequestOptions(request) { - const parsedURL = request[INTERNALS$2].parsedURL; - const headers = new Headers(request[INTERNALS$2].headers); - - // fetch step 1.3 - if (!headers.has('Accept')) { - headers.set('Accept', '*/*'); - } - - // Basic fetch - if (!parsedURL.protocol || !parsedURL.hostname) { - throw new TypeError('Only absolute URLs are supported'); - } - - if (!/^https?:$/.test(parsedURL.protocol)) { - throw new TypeError('Only HTTP(S) protocols are supported'); - } - - if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { - throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); - } - - // HTTP-network-or-cache fetch steps 2.4-2.7 - let contentLengthValue = null; - if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { - contentLengthValue = '0'; - } - if (request.body != null) { - const totalBytes = getTotalBytes(request); - if (typeof totalBytes === 'number') { - contentLengthValue = String(totalBytes); - } - } - if (contentLengthValue) { - headers.set('Content-Length', contentLengthValue); - } - - // HTTP-network-or-cache fetch step 2.11 - if (!headers.has('User-Agent')) { - headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); - } - - // HTTP-network-or-cache fetch step 2.15 - if (request.compress && !headers.has('Accept-Encoding')) { - headers.set('Accept-Encoding', 'gzip,deflate'); - } - - let agent = request.agent; - if (typeof agent === 'function') { - agent = agent(parsedURL); - } - - if (!headers.has('Connection') && !agent) { - headers.set('Connection', 'close'); - } - - // HTTP-network fetch step 4.2 - // chunked encoding is handled by Node.js - - return Object.assign({}, parsedURL, { - method: request.method, - headers: exportNodeCompatibleHeaders(headers), - agent - }); -} - -/** - * abort-error.js - * - * AbortError interface for cancelled requests - */ - -/** - * Create AbortError instance - * - * @param String message Error message for human - * @return AbortError - */ -function AbortError(message) { - Error.call(this, message); - - this.type = 'aborted'; - this.message = message; - - // hide custom error implementation details from end-users - Error.captureStackTrace(this, this.constructor); -} - -AbortError.prototype = Object.create(Error.prototype); -AbortError.prototype.constructor = AbortError; -AbortError.prototype.name = 'AbortError'; - -const URL$1 = Url.URL || whatwgUrl.URL; - -// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 -const PassThrough$1 = Stream.PassThrough; - -const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { - const orig = new URL$1(original).hostname; - const dest = new URL$1(destination).hostname; - - return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); -}; - -/** - * isSameProtocol reports whether the two provided URLs use the same protocol. - * - * Both domains must already be in canonical form. - * @param {string|URL} original - * @param {string|URL} destination - */ -const isSameProtocol = function isSameProtocol(destination, original) { - const orig = new URL$1(original).protocol; - const dest = new URL$1(destination).protocol; - - return orig === dest; -}; - -/** - * Fetch function - * - * @param Mixed url Absolute url or Request instance - * @param Object opts Fetch options - * @return Promise - */ -function fetch(url, opts) { - - // allow custom promise - if (!fetch.Promise) { - throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); - } - - Body.Promise = fetch.Promise; - - // wrap http.request into fetch - return new fetch.Promise(function (resolve, reject) { - // build request object - const request = new Request(url, opts); - const options = getNodeRequestOptions(request); - - const send = (options.protocol === 'https:' ? https : http).request; - const signal = request.signal; - - let response = null; - - const abort = function abort() { - let error = new AbortError('The user aborted a request.'); - reject(error); - if (request.body && request.body instanceof Stream.Readable) { - destroyStream(request.body, error); - } - if (!response || !response.body) return; - response.body.emit('error', error); - }; - - if (signal && signal.aborted) { - abort(); - return; - } - - const abortAndFinalize = function abortAndFinalize() { - abort(); - finalize(); - }; - - // send request - const req = send(options); - let reqTimeout; - - if (signal) { - signal.addEventListener('abort', abortAndFinalize); - } - - function finalize() { - req.abort(); - if (signal) signal.removeEventListener('abort', abortAndFinalize); - clearTimeout(reqTimeout); - } - - if (request.timeout) { - req.once('socket', function (socket) { - reqTimeout = setTimeout(function () { - reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); - finalize(); - }, request.timeout); - }); - } - - req.on('error', function (err) { - reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); - - if (response && response.body) { - destroyStream(response.body, err); - } - - finalize(); - }); - - fixResponseChunkedTransferBadEnding(req, function (err) { - if (signal && signal.aborted) { - return; - } - - if (response && response.body) { - destroyStream(response.body, err); - } - }); - - /* c8 ignore next 18 */ - if (parseInt(process.version.substring(1)) < 14) { - // Before Node.js 14, pipeline() does not fully support async iterators and does not always - // properly handle when the socket close/end events are out of order. - req.on('socket', function (s) { - s.addListener('close', function (hadError) { - // if a data listener is still present we didn't end cleanly - const hasDataListener = s.listenerCount('data') > 0; - - // if end happened before close but the socket didn't emit an error, do it now - if (response && hasDataListener && !hadError && !(signal && signal.aborted)) { - const err = new Error('Premature close'); - err.code = 'ERR_STREAM_PREMATURE_CLOSE'; - response.body.emit('error', err); - } - }); - }); - } - - req.on('response', function (res) { - clearTimeout(reqTimeout); - - const headers = createHeadersLenient(res.headers); - - // HTTP fetch step 5 - if (fetch.isRedirect(res.statusCode)) { - // HTTP fetch step 5.2 - const location = headers.get('Location'); - - // HTTP fetch step 5.3 - let locationURL = null; - try { - locationURL = location === null ? null : new URL$1(location, request.url).toString(); - } catch (err) { - // error here can only be invalid URL in Location: header - // do not throw when options.redirect == manual - // let the user extract the errorneous redirect URL - if (request.redirect !== 'manual') { - reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); - finalize(); - return; - } - } - - // HTTP fetch step 5.5 - switch (request.redirect) { - case 'error': - reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); - finalize(); - return; - case 'manual': - // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. - if (locationURL !== null) { - // handle corrupted header - try { - headers.set('Location', locationURL); - } catch (err) { - // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request - reject(err); - } - } - break; - case 'follow': - // HTTP-redirect fetch step 2 - if (locationURL === null) { - break; - } - - // HTTP-redirect fetch step 5 - if (request.counter >= request.follow) { - reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); - finalize(); - return; - } - - // HTTP-redirect fetch step 6 (counter increment) - // Create a new Request object. - const requestOpts = { - headers: new Headers(request.headers), - follow: request.follow, - counter: request.counter + 1, - agent: request.agent, - compress: request.compress, - method: request.method, - body: request.body, - signal: request.signal, - timeout: request.timeout, - size: request.size - }; - - if (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) { - for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { - requestOpts.headers.delete(name); - } - } - - // HTTP-redirect fetch step 9 - if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { - reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); - finalize(); - return; - } - - // HTTP-redirect fetch step 11 - if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { - requestOpts.method = 'GET'; - requestOpts.body = undefined; - requestOpts.headers.delete('content-length'); - } - - // HTTP-redirect fetch step 15 - resolve(fetch(new Request(locationURL, requestOpts))); - finalize(); - return; - } - } - - // prepare response - res.once('end', function () { - if (signal) signal.removeEventListener('abort', abortAndFinalize); - }); - let body = res.pipe(new PassThrough$1()); - - const response_options = { - url: request.url, - status: res.statusCode, - statusText: res.statusMessage, - headers: headers, - size: request.size, - timeout: request.timeout, - counter: request.counter - }; - - // HTTP-network fetch step 12.1.1.3 - const codings = headers.get('Content-Encoding'); - - // HTTP-network fetch step 12.1.1.4: handle content codings - - // in following scenarios we ignore compression support - // 1. compression support is disabled - // 2. HEAD request - // 3. no Content-Encoding header - // 4. no content response (204) - // 5. content not modified response (304) - if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { - response = new Response(body, response_options); - resolve(response); - return; - } - - // For Node v6+ - // Be less strict when decoding compressed responses, since sometimes - // servers send slightly invalid responses that are still accepted - // by common browsers. - // Always using Z_SYNC_FLUSH is what cURL does. - const zlibOptions = { - flush: zlib.Z_SYNC_FLUSH, - finishFlush: zlib.Z_SYNC_FLUSH - }; - - // for gzip - if (codings == 'gzip' || codings == 'x-gzip') { - body = body.pipe(zlib.createGunzip(zlibOptions)); - response = new Response(body, response_options); - resolve(response); - return; - } - - // for deflate - if (codings == 'deflate' || codings == 'x-deflate') { - // handle the infamous raw deflate response from old servers - // a hack for old IIS and Apache servers - const raw = res.pipe(new PassThrough$1()); - raw.once('data', function (chunk) { - // see http://stackoverflow.com/questions/37519828 - if ((chunk[0] & 0x0F) === 0x08) { - body = body.pipe(zlib.createInflate()); - } else { - body = body.pipe(zlib.createInflateRaw()); - } - response = new Response(body, response_options); - resolve(response); - }); - raw.on('end', function () { - // some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted. - if (!response) { - response = new Response(body, response_options); - resolve(response); - } - }); - return; - } - - // for br - if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { - body = body.pipe(zlib.createBrotliDecompress()); - response = new Response(body, response_options); - resolve(response); - return; - } - - // otherwise, use response as-is - response = new Response(body, response_options); - resolve(response); - }); - - writeToStream(req, request); - }); -} -function fixResponseChunkedTransferBadEnding(request, errorCallback) { - let socket; - - request.on('socket', function (s) { - socket = s; - }); - - request.on('response', function (response) { - const headers = response.headers; - - if (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) { - response.once('close', function (hadError) { - // if a data listener is still present we didn't end cleanly - const hasDataListener = socket.listenerCount('data') > 0; - - if (hasDataListener && !hadError) { - const err = new Error('Premature close'); - err.code = 'ERR_STREAM_PREMATURE_CLOSE'; - errorCallback(err); - } - }); - } - }); -} - -function destroyStream(stream, err) { - if (stream.destroy) { - stream.destroy(err); - } else { - // node < 8 - stream.emit('error', err); - stream.end(); - } -} - -/** - * Redirect code matching - * - * @param Number code Status code - * @return Boolean - */ -fetch.isRedirect = function (code) { - return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; -}; - -// expose Promise -fetch.Promise = global.Promise; - -module.exports = exports = fetch; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports["default"] = exports; -exports.Headers = Headers; -exports.Request = Request; -exports.Response = Response; -exports.FetchError = FetchError; - - -/***/ }), - -/***/ 1223: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -var wrappy = __nccwpck_require__(2940) -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 -} - - -/***/ }), - -/***/ 4833: -/***/ ((module) => { - -"use strict"; -function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]}},e:function e(_e2){throw _e2},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o)},n:function n(){var step=it.next();normalCompletion=step.done;return step},e:function e(_e3){didErr=true;err=_e3},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]()}finally{if(didErr)throw err}}}}function _defineProperty(obj,key,value){key=_toPropertyKey(key);if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _toPropertyKey(arg){var key=_toPrimitive(arg,"string");return _typeof(key)==="symbol"?key:String(key)}function _toPrimitive(input,hint){if(_typeof(input)!=="object"||input===null)return input;var prim=input[Symbol.toPrimitive];if(prim!==undefined){var res=prim.call(input,hint||"default");if(_typeof(res)!=="object")return res;throw new TypeError("@@toPrimitive must return a primitive value.")}return(hint==="string"?String:Number)(input)}function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_unsupportedIterableToArray(arr,i)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i { - -"use strict"; - - -function propagate(events, source, dest) { - if (arguments.length < 3) { - dest = source - source = events - events = undefined - } - - // events should be an array or object - const eventsIsObject = typeof events === 'object' - if (events && !eventsIsObject) events = [events] - - if (eventsIsObject) { - return explicitPropagate(events, source, dest) - } - - const shouldPropagate = eventName => - events === undefined || events.includes(eventName) - - const oldEmit = source.emit - - // Returns true if the event had listeners, false otherwise. - // https://nodejs.org/api/events.html#events_emitter_emit_eventname_args - source.emit = (eventName, ...args) => { - const oldEmitHadListeners = oldEmit.call(source, eventName, ...args) - - let destEmitHadListeners = false - if (shouldPropagate(eventName)) { - destEmitHadListeners = dest.emit(eventName, ...args) - } - - return oldEmitHadListeners || destEmitHadListeners - } - - function end() { - source.emit = oldEmit - } - - return { - end, - } -} - -module.exports = propagate - -function explicitPropagate(events, source, dest) { - let eventsIn - let eventsOut - if (Array.isArray(events)) { - eventsIn = events - eventsOut = events - } else { - eventsIn = Object.keys(events) - eventsOut = eventsIn.map(function(key) { - return events[key] - }) - } - - const listeners = eventsOut.map(function(event) { - return function() { - const args = Array.prototype.slice.call(arguments) - args.unshift(event) - dest.emit.apply(dest, args) - } - }) - - listeners.forEach(register) - - return { - end, - } - - function register(listener, i) { - source.on(eventsIn[i], listener) - } - - function unregister(listener, i) { - source.removeListener(eventsIn[i], listener) - } - - function end() { - listeners.forEach(unregister) - } -} - - -/***/ }), - -/***/ 4256: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -var punycode = __nccwpck_require__(5477); -var mappingTable = __nccwpck_require__(2020); - -var PROCESSING_OPTIONS = { - TRANSITIONAL: 0, - NONTRANSITIONAL: 1 -}; - -function normalize(str) { // fix bug in v8 - return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000'); -} - -function findStatus(val) { - var start = 0; - var end = mappingTable.length - 1; - - while (start <= end) { - var mid = Math.floor((start + end) / 2); - - var target = mappingTable[mid]; - if (target[0][0] <= val && target[0][1] >= val) { - return target; - } else if (target[0][0] > val) { - end = mid - 1; - } else { - start = mid + 1; - } - } - - return null; -} - -var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; - -function countSymbols(string) { - return string - // replace every surrogate pair with a BMP symbol - .replace(regexAstralSymbols, '_') - // then get the length - .length; -} - -function mapChars(domain_name, useSTD3, processing_option) { - var hasError = false; - var processed = ""; - - var len = countSymbols(domain_name); - for (var i = 0; i < len; ++i) { - var codePoint = domain_name.codePointAt(i); - var status = findStatus(codePoint); - - switch (status[1]) { - case "disallowed": - hasError = true; - processed += String.fromCodePoint(codePoint); - break; - case "ignored": - break; - case "mapped": - processed += String.fromCodePoint.apply(String, status[2]); - break; - case "deviation": - if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { - processed += String.fromCodePoint.apply(String, status[2]); + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } + + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); + } + + const streamDestructionSupported = "destroy" in Stream.Readable.prototype; + + /** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ + function isRequest(input) { + return ( + typeof input === "object" && typeof input[INTERNALS$2] === "object" + ); + } + + function isAbortSignal(signal) { + const proto = + signal && typeof signal === "object" && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === "AbortSignal"); + } + + /** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ + class Request { + constructor(input) { + let init = + arguments.length > 1 && arguments[1] !== undefined + ? arguments[1] + : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parseURL(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parseURL(`${input}`); + } + input = {}; + } else { + parsedURL = parseURL(input.url); + } + + let method = init.method || input.method || "GET"; + method = method.toUpperCase(); + + if ( + (init.body != null || (isRequest(input) && input.body !== null)) && + (method === "GET" || method === "HEAD") + ) { + throw new TypeError( + "Request with GET/HEAD method cannot have body" + ); + } + + let inputBody = + init.body != null + ? init.body + : isRequest(input) && input.body !== null + ? clone(input) + : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0, + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has("Content-Type")) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append("Content-Type", contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ("signal" in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError( + "Expected signal to be an instanceof AbortSignal" + ); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || "follow", + headers, + parsedURL, + signal, + }; + + // node-fetch-only options + this.follow = + init.follow !== undefined + ? init.follow + : input.follow !== undefined + ? input.follow + : 20; + this.compress = + init.compress !== undefined + ? init.compress + : input.compress !== undefined + ? input.compress + : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } + } + + Body.mixIn(Request.prototype); + + Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: "Request", + writable: false, + enumerable: false, + configurable: true, + }); + + Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true }, + }); + + /** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ + function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has("Accept")) { + headers.set("Accept", "*/*"); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError("Only absolute URLs are supported"); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError("Only HTTP(S) protocols are supported"); + } + + if ( + request.signal && + request.body instanceof Stream.Readable && + !streamDestructionSupported + ) { + throw new Error( + "Cancellation of streamed requests with AbortSignal is not supported in node < 8" + ); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = "0"; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === "number") { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set("Content-Length", contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has("User-Agent")) { + headers.set( + "User-Agent", + "node-fetch/1.0 (+https://github.com/bitinn/node-fetch)" + ); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has("Accept-Encoding")) { + headers.set("Accept-Encoding", "gzip,deflate"); + } + + let agent = request.agent; + if (typeof agent === "function") { + agent = agent(parsedURL); + } + + if (!headers.has("Connection") && !agent) { + headers.set("Connection", "close"); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent, + }); + } + + /** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + + /** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ + function AbortError(message) { + Error.call(this, message); + + this.type = "aborted"; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); + } + + AbortError.prototype = Object.create(Error.prototype); + AbortError.prototype.constructor = AbortError; + AbortError.prototype.name = "AbortError"; + + const URL$1 = Url.URL || whatwgUrl.URL; + + // fix an issue where "PassThrough", "resolve" aren't a named export for node <10 + const PassThrough$1 = Stream.PassThrough; + + const isDomainOrSubdomain = function isDomainOrSubdomain( + destination, + original + ) { + const orig = new URL$1(original).hostname; + const dest = new URL$1(destination).hostname; + + return ( + orig === dest || + (orig[orig.length - dest.length - 1] === "." && orig.endsWith(dest)) + ); + }; + + /** + * isSameProtocol reports whether the two provided URLs use the same protocol. + * + * Both domains must already be in canonical form. + * @param {string|URL} original + * @param {string|URL} destination + */ + const isSameProtocol = function isSameProtocol(destination, original) { + const orig = new URL$1(original).protocol; + const dest = new URL$1(destination).protocol; + + return orig === dest; + }; + + /** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ + function fetch(url, opts) { + // allow custom promise + if (!fetch.Promise) { + throw new Error( + "native promise missing, set fetch.Promise to your favorite alternative" + ); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === "https:" ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError("The user aborted a request."); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + destroyStream(request.body, error); + } + if (!response || !response.body) return; + response.body.emit("error", error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener("abort", abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener("abort", abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once("socket", function (socket) { + reqTimeout = setTimeout(function () { + reject( + new FetchError( + `network timeout at: ${request.url}`, + "request-timeout" + ) + ); + finalize(); + }, request.timeout); + }); + } + + req.on("error", function (err) { + reject( + new FetchError( + `request to ${request.url} failed, reason: ${err.message}`, + "system", + err + ) + ); + + if (response && response.body) { + destroyStream(response.body, err); + } + + finalize(); + }); + + fixResponseChunkedTransferBadEnding(req, function (err) { + if (signal && signal.aborted) { + return; + } + + if (response && response.body) { + destroyStream(response.body, err); + } + }); + + /* c8 ignore next 18 */ + if (parseInt(process.version.substring(1)) < 14) { + // Before Node.js 14, pipeline() does not fully support async iterators and does not always + // properly handle when the socket close/end events are out of order. + req.on("socket", function (s) { + s.addListener("close", function (hadError) { + // if a data listener is still present we didn't end cleanly + const hasDataListener = s.listenerCount("data") > 0; + + // if end happened before close but the socket didn't emit an error, do it now + if ( + response && + hasDataListener && + !hadError && + !(signal && signal.aborted) + ) { + const err = new Error("Premature close"); + err.code = "ERR_STREAM_PREMATURE_CLOSE"; + response.body.emit("error", err); + } + }); + }); + } + + req.on("response", function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get("Location"); + + // HTTP fetch step 5.3 + let locationURL = null; + try { + locationURL = + location === null + ? null + : new URL$1(location, request.url).toString(); + } catch (err) { + // error here can only be invalid URL in Location: header + // do not throw when options.redirect == manual + // let the user extract the errorneous redirect URL + if (request.redirect !== "manual") { + reject( + new FetchError( + `uri requested responds with an invalid redirect URL: ${location}`, + "invalid-redirect" + ) + ); + finalize(); + return; + } + } + + // HTTP fetch step 5.5 + switch (request.redirect) { + case "error": + reject( + new FetchError( + `uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, + "no-redirect" + ) + ); + finalize(); + return; + case "manual": + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set("Location", locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case "follow": + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject( + new FetchError( + `maximum redirect reached at: ${request.url}`, + "max-redirect" + ) + ); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size, + }; + + if ( + !isDomainOrSubdomain(request.url, locationURL) || + !isSameProtocol(request.url, locationURL) + ) { + for (const name of [ + "authorization", + "www-authenticate", + "cookie", + "cookie2", + ]) { + requestOpts.headers.delete(name); + } + } + + // HTTP-redirect fetch step 9 + if ( + res.statusCode !== 303 && + request.body && + getTotalBytes(request) === null + ) { + reject( + new FetchError( + "Cannot follow redirect with body being a readable stream", + "unsupported-redirect" + ) + ); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if ( + res.statusCode === 303 || + ((res.statusCode === 301 || res.statusCode === 302) && + request.method === "POST") + ) { + requestOpts.method = "GET"; + requestOpts.body = undefined; + requestOpts.headers.delete("content-length"); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once("end", function () { + if (signal) signal.removeEventListener("abort", abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter, + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get("Content-Encoding"); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if ( + !request.compress || + request.method === "HEAD" || + codings === null || + res.statusCode === 204 || + res.statusCode === 304 + ) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH, + }; + + // for gzip + if (codings == "gzip" || codings == "x-gzip") { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == "deflate" || codings == "x-deflate") { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once("data", function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0f) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + raw.on("end", function () { + // some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted. + if (!response) { + response = new Response(body, response_options); + resolve(response); + } + }); + return; + } + + // for br + if ( + codings == "br" && + typeof zlib.createBrotliDecompress === "function" + ) { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); + } + function fixResponseChunkedTransferBadEnding(request, errorCallback) { + let socket; + + request.on("socket", function (s) { + socket = s; + }); + + request.on("response", function (response) { + const headers = response.headers; + + if ( + headers["transfer-encoding"] === "chunked" && + !headers["content-length"] + ) { + response.once("close", function (hadError) { + // if a data listener is still present we didn't end cleanly + const hasDataListener = socket.listenerCount("data") > 0; + + if (hasDataListener && !hadError) { + const err = new Error("Premature close"); + err.code = "ERR_STREAM_PREMATURE_CLOSE"; + errorCallback(err); + } + }); + } + }); + } + + function destroyStream(stream, err) { + if (stream.destroy) { + stream.destroy(err); } else { - processed += String.fromCodePoint(codePoint); + // node < 8 + stream.emit("error", err); + stream.end(); } - break; - case "valid": - processed += String.fromCodePoint(codePoint); - break; - case "disallowed_STD3_mapped": - if (useSTD3) { - hasError = true; - processed += String.fromCodePoint(codePoint); + } + + /** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ + fetch.isRedirect = function (code) { + return ( + code === 301 || + code === 302 || + code === 303 || + code === 307 || + code === 308 + ); + }; + + // expose Promise + fetch.Promise = global.Promise; + + module.exports = exports = fetch; + Object.defineProperty(exports, "__esModule", { value: true }); + exports["default"] = exports; + exports.Headers = Headers; + exports.Request = Request; + exports.Response = Response; + exports.FetchError = FetchError; + + /***/ + }, + + /***/ 1223: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + var wrappy = __nccwpck_require__(2940); + 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; + } + + /***/ + }, + + /***/ 4833: /***/ (module) => { + "use strict"; + function _typeof(obj) { + "@babel/helpers - typeof"; + return ( + (_typeof = + "function" == typeof Symbol && "symbol" == typeof Symbol.iterator + ? function (obj) { + return typeof obj; + } + : function (obj) { + return obj && + "function" == typeof Symbol && + obj.constructor === Symbol && + obj !== Symbol.prototype + ? "symbol" + : typeof obj; + }), + _typeof(obj) + ); + } + function _createForOfIteratorHelper(o, allowArrayLike) { + var it = + (typeof Symbol !== "undefined" && o[Symbol.iterator]) || + o["@@iterator"]; + if (!it) { + if ( + Array.isArray(o) || + (it = _unsupportedIterableToArray(o)) || + (allowArrayLike && o && typeof o.length === "number") + ) { + if (it) o = it; + var i = 0; + var F = function F() {}; + return { + s: F, + n: function n() { + if (i >= o.length) return { done: true }; + return { done: false, value: o[i++] }; + }, + e: function e(_e2) { + throw _e2; + }, + f: F, + }; + } + throw new TypeError( + "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." + ); + } + var normalCompletion = true, + didErr = false, + err; + return { + s: function s() { + it = it.call(o); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e3) { + didErr = true; + err = _e3; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + }, + }; + } + function _defineProperty(obj, key, value) { + key = _toPropertyKey(key); + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true, + }); } else { - processed += String.fromCodePoint.apply(String, status[2]); + obj[key] = value; } - break; - case "disallowed_STD3_valid": - if (useSTD3) { - hasError = true; + return obj; + } + function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + return _typeof(key) === "symbol" ? key : String(key); + } + function _toPrimitive(input, hint) { + if (_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); } - - processed += String.fromCodePoint(codePoint); - break; - } - } - - return { - string: processed, - error: hasError - }; -} - -var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; - -function validateLabel(label, processing_option) { - if (label.substr(0, 4) === "xn--") { - label = punycode.toUnicode(label); - processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; - } - - var error = false; - - if (normalize(label) !== label || - (label[3] === "-" && label[4] === "-") || - label[0] === "-" || label[label.length - 1] === "-" || - label.indexOf(".") !== -1 || - label.search(combiningMarksRegex) === 0) { - error = true; - } - - var len = countSymbols(label); - for (var i = 0; i < len; ++i) { - var status = findStatus(label.codePointAt(i)); - if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") || - (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && - status[1] !== "valid" && status[1] !== "deviation")) { - error = true; - break; - } - } - - return { - label: label, - error: error - }; -} - -function processing(domain_name, useSTD3, processing_option) { - var result = mapChars(domain_name, useSTD3, processing_option); - result.string = normalize(result.string); - - var labels = result.string.split("."); - for (var i = 0; i < labels.length; ++i) { - try { - var validation = validateLabel(labels[i]); - labels[i] = validation.label; - result.error = result.error || validation.error; - } catch(e) { - result.error = true; - } - } - - return { - string: labels.join("."), - error: result.error - }; -} - -module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { - var result = processing(domain_name, useSTD3, processing_option); - var labels = result.string.split("."); - labels = labels.map(function(l) { - try { - return punycode.toASCII(l); - } catch(e) { - result.error = true; - return l; - } - }); - - if (verifyDnsLength) { - var total = labels.slice(0, labels.length - 1).join(".").length; - if (total.length > 253 || total.length === 0) { - result.error = true; - } - - for (var i=0; i < labels.length; ++i) { - if (labels.length > 63 || labels.length === 0) { - result.error = true; - break; + return (hint === "string" ? String : Number)(input); } - } - } - - if (result.error) return null; - return labels.join("."); -}; - -module.exports.toUnicode = function(domain_name, useSTD3) { - var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); - - return { - domain: result.string, - error: result.error - }; -}; - -module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; - - -/***/ }), - -/***/ 4294: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -module.exports = __nccwpck_require__(4219); - - -/***/ }), - -/***/ 4219: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -var net = __nccwpck_require__(1808); -var tls = __nccwpck_require__(4404); -var http = __nccwpck_require__(3685); -var https = __nccwpck_require__(5687); -var events = __nccwpck_require__(2361); -var assert = __nccwpck_require__(9491); -var util = __nccwpck_require__(3837); - - -exports.httpOverHttp = httpOverHttp; -exports.httpsOverHttp = httpsOverHttp; -exports.httpOverHttps = httpOverHttps; -exports.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 onFree(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) { - // Detect the request to connect same origin server, - // reuse the connection. - self.requests.splice(i, 1); - pending.request.onSocket(socket); - return; + function _slicedToArray(arr, i) { + return ( + _arrayWithHoles(arr) || + _iterableToArrayLimit(arr, i) || + _unsupportedIterableToArray(arr, i) || + _nonIterableRest() + ); } - } - socket.destroy(); - self.removeSocket(socket); - }); -} -util.inherits(TunnelingAgent, events.EventEmitter); - -TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { - var self = this; - var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); - - if (self.sockets.length >= this.maxSockets) { - // We are over limit so we'll add it to the queue. - self.requests.push(options); - return; - } - - // If we are under maxSockets create a new one. - 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 createSocket(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; // for v0.6 - connectReq.once('response', onResponse); // for v0.6 - connectReq.once('upgrade', onUpgrade); // for v0.6 - connectReq.once('connect', onConnect); // for v0.7 or later - connectReq.once('error', onError); - connectReq.end(); - - function onResponse(res) { - // Very hacky. This is necessary to avoid http-parser leaks. - res.upgrade = true; - } - - function onUpgrade(res, socket, head) { - // Hacky. - process.nextTick(function() { - onConnect(res, socket, head); - }); - } - - function onConnect(res, socket, head) { - connectReq.removeAllListeners(); - socket.removeAllListeners(); - - if (res.statusCode !== 200) { - 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 removeSocket(socket) { - var pos = this.sockets.indexOf(socket) - if (pos === -1) { - return; - } - this.sockets.splice(pos, 1); - - var pending = this.requests.shift(); - if (pending) { - // If we have pending requests and a socket gets closed a new one - // needs to be created to take over in the pool for the one that closed. - 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 - }); - - // 0 is dummy port for v0.6 - var secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket; - cb(secureSocket); - }); -} - - -function toOptions(host, port, localAddress) { - if (typeof host === 'string') { // since v0.10 - return { - host: host, - port: port, - localAddress: localAddress - }; - } - return host; // for v0.11 or later -} - -function mergeOptions(target) { - for (var i = 1, len = arguments.length; i < len; ++i) { - var overrides = arguments[i]; - if (typeof overrides === 'object') { - var keys = Object.keys(overrides); - for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { - var k = keys[j]; - if (overrides[k] !== undefined) { - target[k] = overrides[k]; + function _nonIterableRest() { + throw new TypeError( + "Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." + ); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if ( + n === "Arguments" || + /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) + ) + return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + var _i = + null == arr + ? null + : ("undefined" != typeof Symbol && arr[Symbol.iterator]) || + arr["@@iterator"]; + if (null != _i) { + var _s, + _e, + _x, + _r, + _arr = [], + _n = !0, + _d = !1; + try { + if (((_x = (_i = _i.call(arr)).next), 0 === i)) { + if (Object(_i) !== _i) return; + _n = !1; + } else + for ( + ; + !(_n = (_s = _x.call(_i)).done) && + (_arr.push(_s.value), _arr.length !== i); + _n = !0 + ) {} + } catch (err) { + (_d = !0), (_e = err); + } finally { + try { + if ( + !_n && + null != _i["return"] && + ((_r = _i["return"]()), Object(_r) !== _r) + ) + return; + } finally { + if (_d) throw _e; + } + } + return _arr; } } - } - } - return target; -} - - -var debug; -if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { - debug = function() { - var args = Array.prototype.slice.call(arguments); - if (typeof args[0] === 'string') { - args[0] = 'TUNNEL: ' + args[0]; - } else { - args.unshift('TUNNEL:'); - } - console.error.apply(console, args); - } -} else { - debug = function() {}; -} -exports.debug = debug; // for test - - -/***/ }), - -/***/ 5030: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ value: true })); - -function getUserAgent() { - if (typeof navigator === "object" && "userAgent" in navigator) { - return navigator.userAgent; - } - - if (typeof process === "object" && "version" in process) { - return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; - } - - return ""; -} - -exports.getUserAgent = getUserAgent; -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ 5840: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -Object.defineProperty(exports, "v1", ({ - enumerable: true, - get: function () { - return _v.default; - } -})); -Object.defineProperty(exports, "v3", ({ - enumerable: true, - get: function () { - return _v2.default; - } -})); -Object.defineProperty(exports, "v4", ({ - enumerable: true, - get: function () { - return _v3.default; - } -})); -Object.defineProperty(exports, "v5", ({ - enumerable: true, - get: function () { - return _v4.default; - } -})); -Object.defineProperty(exports, "NIL", ({ - enumerable: true, - get: function () { - return _nil.default; - } -})); -Object.defineProperty(exports, "version", ({ - enumerable: true, - get: function () { - return _version.default; - } -})); -Object.defineProperty(exports, "validate", ({ - enumerable: true, - get: function () { - return _validate.default; - } -})); -Object.defineProperty(exports, "stringify", ({ - enumerable: true, - get: function () { - return _stringify.default; - } -})); -Object.defineProperty(exports, "parse", ({ - enumerable: true, - get: function () { - return _parse.default; - } -})); - -var _v = _interopRequireDefault(__nccwpck_require__(8628)); - -var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); - -var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); - -var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); - -var _nil = _interopRequireDefault(__nccwpck_require__(5332)); - -var _version = _interopRequireDefault(__nccwpck_require__(1595)); - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/***/ }), - -/***/ 4569: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function md5(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('md5').update(bytes).digest(); -} - -var _default = md5; -exports["default"] = _default; - -/***/ }), - -/***/ 5332: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = '00000000-0000-0000-0000-000000000000'; -exports["default"] = _default; - -/***/ }), - -/***/ 2746: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function parse(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } - - let v; - const arr = new Uint8Array(16); // Parse ########-....-....-....-............ - - arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; - arr[1] = v >>> 16 & 0xff; - arr[2] = v >>> 8 & 0xff; - arr[3] = v & 0xff; // Parse ........-####-....-....-............ - - arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; - arr[5] = v & 0xff; // Parse ........-....-####-....-............ - - arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; - arr[7] = v & 0xff; // Parse ........-....-....-####-............ - - arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; - arr[9] = v & 0xff; // Parse ........-....-....-....-############ - // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) - - arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; - arr[11] = v / 0x100000000 & 0xff; - arr[12] = v >>> 24 & 0xff; - arr[13] = v >>> 16 & 0xff; - arr[14] = v >>> 8 & 0xff; - arr[15] = v & 0xff; - return arr; -} - -var _default = parse; -exports["default"] = _default; - -/***/ }), - -/***/ 814: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; -var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; -exports["default"] = _default; - -/***/ }), - -/***/ 807: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = rng; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate - -let poolPtr = rnds8Pool.length; - -function rng() { - if (poolPtr > rnds8Pool.length - 16) { - _crypto.default.randomFillSync(rnds8Pool); - - poolPtr = 0; - } - - return rnds8Pool.slice(poolPtr, poolPtr += 16); -} - -/***/ }), - -/***/ 5274: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function sha1(bytes) { - if (Array.isArray(bytes)) { - bytes = Buffer.from(bytes); - } else if (typeof bytes === 'string') { - bytes = Buffer.from(bytes, 'utf8'); - } - - return _crypto.default.createHash('sha1').update(bytes).digest(); -} - -var _default = sha1; -exports["default"] = _default; - -/***/ }), - -/***/ 8950: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -const byteToHex = []; - -for (let i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} - -function stringify(arr, offset = 0) { - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0, _validate.default)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } - - return uuid; -} - -var _default = stringify; -exports["default"] = _default; - -/***/ }), - -/***/ 8628: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html -let _nodeId; - -let _clockseq; // Previous uuid creation time - - -let _lastMSecs = 0; -let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details - -function v1(options, buf, offset) { - let i = buf && offset || 0; - const b = buf || new Array(16); - options = options || {}; - let node = options.node || _nodeId; - let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - - if (node == null || clockseq == null) { - const seedBytes = options.random || (options.rng || _rng.default)(); - - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; - } - - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - - - let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - - let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) - - const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression - - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - - - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } // Per 4.2.1.2 Throw error if too many uuids are requested - - - if (nsecs >= 10000) { - throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - - msecs += 12219292800000; // `time_low` - - const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; // `time_mid` - - const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; // `time_high_and_version` - - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - - b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - - b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` - - b[i++] = clockseq & 0xff; // `node` - - for (let n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - - return buf || (0, _stringify.default)(b); -} - -var _default = v1; -exports["default"] = _default; - -/***/ }), - -/***/ 6409: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _md = _interopRequireDefault(__nccwpck_require__(4569)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const v3 = (0, _v.default)('v3', 0x30, _md.default); -var _default = v3; -exports["default"] = _default; - -/***/ }), - -/***/ 5998: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = _default; -exports.URL = exports.DNS = void 0; - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -var _parse = _interopRequireDefault(__nccwpck_require__(2746)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function stringToBytes(str) { - str = unescape(encodeURIComponent(str)); // UTF8 escape - - const bytes = []; - - for (let i = 0; i < str.length; ++i) { - bytes.push(str.charCodeAt(i)); - } - - return bytes; -} - -const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; -exports.DNS = DNS; -const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; -exports.URL = URL; - -function _default(name, version, hashfunc) { - function generateUUID(value, namespace, buf, offset) { - if (typeof value === 'string') { - value = stringToBytes(value); - } - - if (typeof namespace === 'string') { - namespace = (0, _parse.default)(namespace); - } - - if (namespace.length !== 16) { - throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); - } // Compute hash of namespace and value, Per 4.3 - // Future: Use spread syntax when supported on all platforms, e.g. `bytes = - // hashfunc([...namespace, ... value])` - - - let bytes = new Uint8Array(16 + value.length); - bytes.set(namespace); - bytes.set(value, namespace.length); - bytes = hashfunc(bytes); - bytes[6] = bytes[6] & 0x0f | version; - bytes[8] = bytes[8] & 0x3f | 0x80; - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = bytes[i]; + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; } - - return buf; - } - - return (0, _stringify.default)(bytes); - } // Function#name is not settable on some platforms (#270) - - - try { - generateUUID.name = name; // eslint-disable-next-line no-empty - } catch (err) {} // For CommonJS default export support - - - generateUUID.DNS = DNS; - generateUUID.URL = URL; - return generateUUID; -} - -/***/ }), - -/***/ 5122: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _rng = _interopRequireDefault(__nccwpck_require__(807)); - -var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function v4(options, buf, offset) { - options = options || {}; - - const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - - - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided - - if (buf) { - offset = offset || 0; - - for (let i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } - - return buf; - } - - return (0, _stringify.default)(rnds); -} - -var _default = v4; -exports["default"] = _default; - -/***/ }), - -/***/ 9120: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _v = _interopRequireDefault(__nccwpck_require__(5998)); - -var _sha = _interopRequireDefault(__nccwpck_require__(5274)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -const v5 = (0, _v.default)('v5', 0x50, _sha.default); -var _default = v5; -exports["default"] = _default; - -/***/ }), - -/***/ 6900: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _regex = _interopRequireDefault(__nccwpck_require__(814)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function validate(uuid) { - return typeof uuid === 'string' && _regex.default.test(uuid); -} - -var _default = validate; -exports["default"] = _default; - -/***/ }), - -/***/ 1595: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", ({ - value: true -})); -exports["default"] = void 0; - -var _validate = _interopRequireDefault(__nccwpck_require__(6900)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function version(uuid) { - if (!(0, _validate.default)(uuid)) { - throw TypeError('Invalid UUID'); - } - - return parseInt(uuid.substr(14, 1), 16); -} - -var _default = version; -exports["default"] = _default; - -/***/ }), - -/***/ 1452: -/***/ (function(__unused_webpack_module, exports) { - -/** - * web-streams-polyfill v3.2.1 - */ -(function (global, factory) { - true ? factory(exports) : - 0; -}(this, (function (exports) { 'use strict'; - - /// - const SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? - Symbol : - description => `Symbol(${description})`; - - /// - function noop() { - return undefined; - } - function getGlobals() { - if (typeof self !== 'undefined') { - return self; - } - else if (typeof window !== 'undefined') { - return window; - } - else if (typeof global !== 'undefined') { - return global; - } - return undefined; - } - const globals = getGlobals(); - - function typeIsObject(x) { - return (typeof x === 'object' && x !== null) || typeof x === 'function'; - } - const rethrowAssertionErrorRejection = noop; - - const originalPromise = Promise; - const originalPromiseThen = Promise.prototype.then; - const originalPromiseResolve = Promise.resolve.bind(originalPromise); - const originalPromiseReject = Promise.reject.bind(originalPromise); - function newPromise(executor) { - return new originalPromise(executor); - } - function promiseResolvedWith(value) { - return originalPromiseResolve(value); - } - function promiseRejectedWith(reason) { - return originalPromiseReject(reason); - } - function PerformPromiseThen(promise, onFulfilled, onRejected) { - // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an - // approximation. - return originalPromiseThen.call(promise, onFulfilled, onRejected); - } - function uponPromise(promise, onFulfilled, onRejected) { - PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection); - } - function uponFulfillment(promise, onFulfilled) { - uponPromise(promise, onFulfilled); - } - function uponRejection(promise, onRejected) { - uponPromise(promise, undefined, onRejected); - } - function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) { - return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler); - } - function setPromiseIsHandledToTrue(promise) { - PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection); - } - const queueMicrotask = (() => { - const globalQueueMicrotask = globals && globals.queueMicrotask; - if (typeof globalQueueMicrotask === 'function') { - return globalQueueMicrotask; - } - const resolvedPromise = promiseResolvedWith(undefined); - return (fn) => PerformPromiseThen(resolvedPromise, fn); - })(); - function reflectCall(F, V, args) { - if (typeof F !== 'function') { - throw new TypeError('Argument is not a function'); - } - return Function.prototype.apply.call(F, V, args); - } - function promiseCall(F, V, args) { + module.exports = function (input) { + if (!input) return []; + if (typeof input !== "string" || input.match(/^\s+$/)) return []; + var lines = input.split("\n"); + if (lines.length === 0) return []; + var files = []; + var currentFile = null; + var currentChunk = null; + var deletedLineCounter = 0; + var addedLineCounter = 0; + var currentFileChanges = null; + var normal = function normal(line) { + var _currentChunk; + (_currentChunk = currentChunk) === null || _currentChunk === void 0 + ? void 0 + : _currentChunk.changes.push({ + type: "normal", + normal: true, + ln1: deletedLineCounter++, + ln2: addedLineCounter++, + content: line, + }); + currentFileChanges.oldLines--; + currentFileChanges.newLines--; + }; + var start = function start(line) { + var _parseFiles; + var _ref = + (_parseFiles = parseFiles(line)) !== null && + _parseFiles !== void 0 + ? _parseFiles + : [], + _ref2 = _slicedToArray(_ref, 2), + fromFileName = _ref2[0], + toFileName = _ref2[1]; + currentFile = { + chunks: [], + deletions: 0, + additions: 0, + from: fromFileName, + to: toFileName, + }; + files.push(currentFile); + }; + var restart = function restart() { + if (!currentFile || currentFile.chunks.length) start(); + }; + var newFile = function newFile(_, match) { + restart(); + currentFile["new"] = true; + currentFile.newMode = match[1]; + currentFile.from = "/dev/null"; + }; + var deletedFile = function deletedFile(_, match) { + restart(); + currentFile.deleted = true; + currentFile.oldMode = match[1]; + currentFile.to = "/dev/null"; + }; + var oldMode = function oldMode(_, match) { + restart(); + currentFile.oldMode = match[1]; + }; + var newMode = function newMode(_, match) { + restart(); + currentFile.newMode = match[1]; + }; + var index = function index(line, match) { + restart(); + currentFile.index = line.split(" ").slice(1); + if (match[1]) { + currentFile.oldMode = currentFile.newMode = match[1].trim(); + } + }; + var fromFile = function fromFile(line) { + restart(); + currentFile.from = parseOldOrNewFile(line); + }; + var toFile = function toFile(line) { + restart(); + currentFile.to = parseOldOrNewFile(line); + }; + var toNumOfLines = function toNumOfLines(number) { + return +(number || 1); + }; + var chunk = function chunk(line, match) { + if (!currentFile) { + start(line); + } + var _match$slice = match.slice(1), + _match$slice2 = _slicedToArray(_match$slice, 4), + oldStart = _match$slice2[0], + oldNumLines = _match$slice2[1], + newStart = _match$slice2[2], + newNumLines = _match$slice2[3]; + deletedLineCounter = +oldStart; + addedLineCounter = +newStart; + currentChunk = { + content: line, + changes: [], + oldStart: +oldStart, + oldLines: toNumOfLines(oldNumLines), + newStart: +newStart, + newLines: toNumOfLines(newNumLines), + }; + currentFileChanges = { + oldLines: toNumOfLines(oldNumLines), + newLines: toNumOfLines(newNumLines), + }; + currentFile.chunks.push(currentChunk); + }; + var del = function del(line) { + if (!currentChunk) return; + currentChunk.changes.push({ + type: "del", + del: true, + ln: deletedLineCounter++, + content: line, + }); + currentFile.deletions++; + currentFileChanges.oldLines--; + }; + var add = function add(line) { + if (!currentChunk) return; + currentChunk.changes.push({ + type: "add", + add: true, + ln: addedLineCounter++, + content: line, + }); + currentFile.additions++; + currentFileChanges.newLines--; + }; + var eof = function eof(line) { + var _currentChunk$changes3; + if (!currentChunk) return; + var _currentChunk$changes = currentChunk.changes.slice(-1), + _currentChunk$changes2 = _slicedToArray(_currentChunk$changes, 1), + mostRecentChange = _currentChunk$changes2[0]; + currentChunk.changes.push( + ((_currentChunk$changes3 = { type: mostRecentChange.type }), + _defineProperty( + _currentChunk$changes3, + mostRecentChange.type, + true + ), + _defineProperty( + _currentChunk$changes3, + "ln1", + mostRecentChange.ln1 + ), + _defineProperty( + _currentChunk$changes3, + "ln2", + mostRecentChange.ln2 + ), + _defineProperty(_currentChunk$changes3, "ln", mostRecentChange.ln), + _defineProperty(_currentChunk$changes3, "content", line), + _currentChunk$changes3) + ); + }; + var schemaHeaders = [ + [/^diff\s/, start], + [/^new file mode (\d+)$/, newFile], + [/^deleted file mode (\d+)$/, deletedFile], + [/^old mode (\d+)$/, oldMode], + [/^new mode (\d+)$/, newMode], + [/^index\s[\da-zA-Z]+\.\.[\da-zA-Z]+(\s(\d+))?$/, index], + [/^---\s/, fromFile], + [/^\+\+\+\s/, toFile], + [/^@@\s+-(\d+),?(\d+)?\s+\+(\d+),?(\d+)?\s@@/, chunk], + [/^\\ No newline at end of file$/, eof], + ]; + var schemaContent = [ + [/^\\ No newline at end of file$/, eof], + [/^-/, del], + [/^\+/, add], + [/^\s+/, normal], + ]; + var parseContentLine = function parseContentLine(line) { + for ( + var _i2 = 0, _schemaContent = schemaContent; + _i2 < _schemaContent.length; + _i2++ + ) { + var _schemaContent$_i = _slicedToArray(_schemaContent[_i2], 2), + pattern = _schemaContent$_i[0], + handler = _schemaContent$_i[1]; + var match = line.match(pattern); + if (match) { + handler(line, match); + break; + } + } + if ( + currentFileChanges.oldLines === 0 && + currentFileChanges.newLines === 0 + ) { + currentFileChanges = null; + } + }; + var parseHeaderLine = function parseHeaderLine(line) { + for ( + var _i3 = 0, _schemaHeaders = schemaHeaders; + _i3 < _schemaHeaders.length; + _i3++ + ) { + var _schemaHeaders$_i = _slicedToArray(_schemaHeaders[_i3], 2), + pattern = _schemaHeaders$_i[0], + handler = _schemaHeaders$_i[1]; + var match = line.match(pattern); + if (match) { + handler(line, match); + break; + } + } + }; + var parseLine = function parseLine(line) { + if (currentFileChanges) { + parseContentLine(line); + } else { + parseHeaderLine(line); + } + return; + }; + var _iterator = _createForOfIteratorHelper(lines), + _step; try { - return promiseResolvedWith(reflectCall(F, V, args)); + for (_iterator.s(); !(_step = _iterator.n()).done; ) { + var line = _step.value; + parseLine(line); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); } - catch (value) { - return promiseRejectedWith(value); + return files; + }; + var fileNameDiffRegex = + /(a|i|w|c|o|1|2)\/.*(?=["']? ["']?(b|i|w|c|o|1|2)\/)|(b|i|w|c|o|1|2)\/.*$/g; + var gitFileHeaderRegex = /^(a|b|i|w|c|o|1|2)\//; + var parseFiles = function parseFiles(line) { + var fileNames = + line === null || line === void 0 + ? void 0 + : line.match(fileNameDiffRegex); + return fileNames === null || fileNames === void 0 + ? void 0 + : fileNames.map(function (fileName) { + return fileName + .replace(gitFileHeaderRegex, "") + .replace(/("|')$/, ""); + }); + }; + var qoutedFileNameRegex = /^\\?['"]|\\?['"]$/g; + var parseOldOrNewFile = function parseOldOrNewFile(line) { + var fileName = leftTrimChars(line, "-+").trim(); + fileName = removeTimeStamp(fileName); + return fileName + .replace(qoutedFileNameRegex, "") + .replace(gitFileHeaderRegex, ""); + }; + var leftTrimChars = function leftTrimChars(string, trimmingChars) { + string = makeString(string); + if (!trimmingChars && String.prototype.trimLeft) + return string.trimLeft(); + var trimmingString = formTrimmingString(trimmingChars); + return string.replace(new RegExp("^".concat(trimmingString, "+")), ""); + }; + var timeStampRegex = + /\t.*|\d{4}-\d\d-\d\d\s\d\d:\d\d:\d\d(.\d+)?\s(\+|-)\d\d\d\d/; + var removeTimeStamp = function removeTimeStamp(string) { + var timeStamp = timeStampRegex.exec(string); + if (timeStamp) { + string = string.substring(0, timeStamp.index).trim(); } - } + return string; + }; + var formTrimmingString = function formTrimmingString(trimmingChars) { + if (trimmingChars === null || trimmingChars === undefined) return "\\s"; + else if (trimmingChars instanceof RegExp) return trimmingChars.source; + return "[".concat( + makeString(trimmingChars).replace( + /([.*+?^=!:${}()|[\]/\\])/g, + "\\$1" + ), + "]" + ); + }; + var makeString = function makeString(itemToConvert) { + return ( + (itemToConvert !== null && itemToConvert !== void 0 + ? itemToConvert + : "") + "" + ); + }; - // Original from Chromium - // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js - const QUEUE_MAX_ARRAY_SIZE = 16384; - /** - * Simple queue structure. - * - * Avoids scalability issues with using a packed array directly by using - * multiple arrays in a linked list and keeping the array size bounded. - */ - class SimpleQueue { - constructor() { + /***/ + }, + + /***/ 9577: /***/ (module) => { + "use strict"; + + function propagate(events, source, dest) { + if (arguments.length < 3) { + dest = source; + source = events; + events = undefined; + } + + // events should be an array or object + const eventsIsObject = typeof events === "object"; + if (events && !eventsIsObject) events = [events]; + + if (eventsIsObject) { + return explicitPropagate(events, source, dest); + } + + const shouldPropagate = (eventName) => + events === undefined || events.includes(eventName); + + const oldEmit = source.emit; + + // Returns true if the event had listeners, false otherwise. + // https://nodejs.org/api/events.html#events_emitter_emit_eventname_args + source.emit = (eventName, ...args) => { + const oldEmitHadListeners = oldEmit.call(source, eventName, ...args); + + let destEmitHadListeners = false; + if (shouldPropagate(eventName)) { + destEmitHadListeners = dest.emit(eventName, ...args); + } + + return oldEmitHadListeners || destEmitHadListeners; + }; + + function end() { + source.emit = oldEmit; + } + + return { + end, + }; + } + + module.exports = propagate; + + function explicitPropagate(events, source, dest) { + let eventsIn; + let eventsOut; + if (Array.isArray(events)) { + eventsIn = events; + eventsOut = events; + } else { + eventsIn = Object.keys(events); + eventsOut = eventsIn.map(function (key) { + return events[key]; + }); + } + + const listeners = eventsOut.map(function (event) { + return function () { + const args = Array.prototype.slice.call(arguments); + args.unshift(event); + dest.emit.apply(dest, args); + }; + }); + + listeners.forEach(register); + + return { + end, + }; + + function register(listener, i) { + source.on(eventsIn[i], listener); + } + + function unregister(listener, i) { + source.removeListener(eventsIn[i], listener); + } + + function end() { + listeners.forEach(unregister); + } + } + + /***/ + }, + + /***/ 4256: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + var punycode = __nccwpck_require__(5477); + var mappingTable = __nccwpck_require__(2020); + + var PROCESSING_OPTIONS = { + TRANSITIONAL: 0, + NONTRANSITIONAL: 1, + }; + + function normalize(str) { + // fix bug in v8 + return str + .split("\u0000") + .map(function (s) { + return s.normalize("NFC"); + }) + .join("\u0000"); + } + + function findStatus(val) { + var start = 0; + var end = mappingTable.length - 1; + + while (start <= end) { + var mid = Math.floor((start + end) / 2); + + var target = mappingTable[mid]; + if (target[0][0] <= val && target[0][1] >= val) { + return target; + } else if (target[0][0] > val) { + end = mid - 1; + } else { + start = mid + 1; + } + } + + return null; + } + + var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + + function countSymbols(string) { + return ( + // then get the length + string + // replace every surrogate pair with a BMP symbol + .replace(regexAstralSymbols, "_").length + ); + } + + function mapChars(domain_name, useSTD3, processing_option) { + var hasError = false; + var processed = ""; + + var len = countSymbols(domain_name); + for (var i = 0; i < len; ++i) { + var codePoint = domain_name.codePointAt(i); + var status = findStatus(codePoint); + + switch (status[1]) { + case "disallowed": + hasError = true; + processed += String.fromCodePoint(codePoint); + break; + case "ignored": + break; + case "mapped": + processed += String.fromCodePoint.apply(String, status[2]); + break; + case "deviation": + if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { + processed += String.fromCodePoint.apply(String, status[2]); + } else { + processed += String.fromCodePoint(codePoint); + } + break; + case "valid": + processed += String.fromCodePoint(codePoint); + break; + case "disallowed_STD3_mapped": + if (useSTD3) { + hasError = true; + processed += String.fromCodePoint(codePoint); + } else { + processed += String.fromCodePoint.apply(String, status[2]); + } + break; + case "disallowed_STD3_valid": + if (useSTD3) { + hasError = true; + } + + processed += String.fromCodePoint(codePoint); + break; + } + } + + return { + string: processed, + error: hasError, + }; + } + + var combiningMarksRegex = + /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; + + function validateLabel(label, processing_option) { + if (label.substr(0, 4) === "xn--") { + label = punycode.toUnicode(label); + processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; + } + + var error = false; + + if ( + normalize(label) !== label || + (label[3] === "-" && label[4] === "-") || + label[0] === "-" || + label[label.length - 1] === "-" || + label.indexOf(".") !== -1 || + label.search(combiningMarksRegex) === 0 + ) { + error = true; + } + + var len = countSymbols(label); + for (var i = 0; i < len; ++i) { + var status = findStatus(label.codePointAt(i)); + if ( + (processing === PROCESSING_OPTIONS.TRANSITIONAL && + status[1] !== "valid") || + (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && + status[1] !== "valid" && + status[1] !== "deviation") + ) { + error = true; + break; + } + } + + return { + label: label, + error: error, + }; + } + + function processing(domain_name, useSTD3, processing_option) { + var result = mapChars(domain_name, useSTD3, processing_option); + result.string = normalize(result.string); + + var labels = result.string.split("."); + for (var i = 0; i < labels.length; ++i) { + try { + var validation = validateLabel(labels[i]); + labels[i] = validation.label; + result.error = result.error || validation.error; + } catch (e) { + result.error = true; + } + } + + return { + string: labels.join("."), + error: result.error, + }; + } + + module.exports.toASCII = function ( + domain_name, + useSTD3, + processing_option, + verifyDnsLength + ) { + var result = processing(domain_name, useSTD3, processing_option); + var labels = result.string.split("."); + labels = labels.map(function (l) { + try { + return punycode.toASCII(l); + } catch (e) { + result.error = true; + return l; + } + }); + + if (verifyDnsLength) { + var total = labels.slice(0, labels.length - 1).join(".").length; + if (total.length > 253 || total.length === 0) { + result.error = true; + } + + for (var i = 0; i < labels.length; ++i) { + if (labels.length > 63 || labels.length === 0) { + result.error = true; + break; + } + } + } + + if (result.error) return null; + return labels.join("."); + }; + + module.exports.toUnicode = function (domain_name, useSTD3) { + var result = processing( + domain_name, + useSTD3, + PROCESSING_OPTIONS.NONTRANSITIONAL + ); + + return { + domain: result.string, + error: result.error, + }; + }; + + module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; + + /***/ + }, + + /***/ 4294: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + module.exports = __nccwpck_require__(4219); + + /***/ + }, + + /***/ 4219: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + var net = __nccwpck_require__(1808); + var tls = __nccwpck_require__(4404); + var http = __nccwpck_require__(3685); + var https = __nccwpck_require__(5687); + var events = __nccwpck_require__(2361); + var assert = __nccwpck_require__(9491); + var util = __nccwpck_require__(3837); + + exports.httpOverHttp = httpOverHttp; + exports.httpsOverHttp = httpsOverHttp; + exports.httpOverHttps = httpOverHttps; + exports.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 onFree(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 + ) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); + } + util.inherits(TunnelingAgent, events.EventEmitter); + + TunnelingAgent.prototype.addRequest = function addRequest( + req, + host, + port, + localAddress + ) { + var self = this; + var options = mergeOptions( + { request: req }, + self.options, + toOptions(host, port, localAddress) + ); + + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } + + // If we are under maxSockets create a new one. + 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 createSocket( + 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; // for v0.6 + connectReq.once("response", onResponse); // for v0.6 + connectReq.once("upgrade", onUpgrade); // for v0.6 + connectReq.once("connect", onConnect); // for v0.7 or later + connectReq.once("error", onError); + connectReq.end(); + + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function () { + onConnect(res, socket, head); + }); + } + + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); + + if (res.statusCode !== 200) { + 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 removeSocket(socket) { + var pos = this.sockets.indexOf(socket); + if (pos === -1) { + return; + } + this.sockets.splice(pos, 1); + + var pending = this.requests.shift(); + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + 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, + }); + + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + } + ); + } + + function toOptions(host, port, localAddress) { + if (typeof host === "string") { + // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress, + }; + } + return host; // for v0.11 or later + } + + function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i]; + if (typeof overrides === "object") { + var keys = Object.keys(overrides); + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j]; + if (overrides[k] !== undefined) { + target[k] = overrides[k]; + } + } + } + } + return target; + } + + var debug; + if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function () { + var args = Array.prototype.slice.call(arguments); + if (typeof args[0] === "string") { + args[0] = "TUNNEL: " + args[0]; + } else { + args.unshift("TUNNEL:"); + } + console.error.apply(console, args); + }; + } else { + debug = function () {}; + } + exports.debug = debug; // for test + + /***/ + }, + + /***/ 5030: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + + if (typeof process === "object" && "version" in process) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${ + process.arch + })`; + } + + return ""; + } + + exports.getUserAgent = getUserAgent; + //# sourceMappingURL=index.js.map + + /***/ + }, + + /***/ 5840: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + Object.defineProperty(exports, "v1", { + enumerable: true, + get: function () { + return _v.default; + }, + }); + Object.defineProperty(exports, "v3", { + enumerable: true, + get: function () { + return _v2.default; + }, + }); + Object.defineProperty(exports, "v4", { + enumerable: true, + get: function () { + return _v3.default; + }, + }); + Object.defineProperty(exports, "v5", { + enumerable: true, + get: function () { + return _v4.default; + }, + }); + Object.defineProperty(exports, "NIL", { + enumerable: true, + get: function () { + return _nil.default; + }, + }); + Object.defineProperty(exports, "version", { + enumerable: true, + get: function () { + return _version.default; + }, + }); + Object.defineProperty(exports, "validate", { + enumerable: true, + get: function () { + return _validate.default; + }, + }); + Object.defineProperty(exports, "stringify", { + enumerable: true, + get: function () { + return _stringify.default; + }, + }); + Object.defineProperty(exports, "parse", { + enumerable: true, + get: function () { + return _parse.default; + }, + }); + + var _v = _interopRequireDefault(__nccwpck_require__(8628)); + + var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); + + var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); + + var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); + + var _nil = _interopRequireDefault(__nccwpck_require__(5332)); + + var _version = _interopRequireDefault(__nccwpck_require__(1595)); + + var _validate = _interopRequireDefault(__nccwpck_require__(6900)); + + var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + + var _parse = _interopRequireDefault(__nccwpck_require__(2746)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + /***/ + }, + + /***/ 4569: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === "string") { + bytes = Buffer.from(bytes, "utf8"); + } + + return _crypto.default.createHash("md5").update(bytes).digest(); + } + + var _default = md5; + exports["default"] = _default; + + /***/ + }, + + /***/ 5332: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + var _default = "00000000-0000-0000-0000-000000000000"; + exports["default"] = _default; + + /***/ + }, + + /***/ 2746: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + + var _validate = _interopRequireDefault(__nccwpck_require__(6900)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + function parse(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError("Invalid UUID"); + } + + let v; + const arr = new Uint8Array(16); // Parse ########-....-....-....-............ + + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; + arr[1] = (v >>> 16) & 0xff; + arr[2] = (v >>> 8) & 0xff; + arr[3] = v & 0xff; // Parse ........-####-....-....-............ + + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; + arr[5] = v & 0xff; // Parse ........-....-####-....-............ + + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; + arr[7] = v & 0xff; // Parse ........-....-....-####-............ + + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; + arr[9] = v & 0xff; // Parse ........-....-....-....-############ + // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + + arr[10] = + ((v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000) & 0xff; + arr[11] = (v / 0x100000000) & 0xff; + arr[12] = (v >>> 24) & 0xff; + arr[13] = (v >>> 16) & 0xff; + arr[14] = (v >>> 8) & 0xff; + arr[15] = v & 0xff; + return arr; + } + + var _default = parse; + exports["default"] = _default; + + /***/ + }, + + /***/ 814: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + var _default = + /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; + exports["default"] = _default; + + /***/ + }, + + /***/ 807: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = rng; + + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate + + let poolPtr = rnds8Pool.length; + + function rng() { + if (poolPtr > rnds8Pool.length - 16) { + _crypto.default.randomFillSync(rnds8Pool); + + poolPtr = 0; + } + + return rnds8Pool.slice(poolPtr, (poolPtr += 16)); + } + + /***/ + }, + + /***/ 5274: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + + var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === "string") { + bytes = Buffer.from(bytes, "utf8"); + } + + return _crypto.default.createHash("sha1").update(bytes).digest(); + } + + var _default = sha1; + exports["default"] = _default; + + /***/ + }, + + /***/ 8950: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + + var _validate = _interopRequireDefault(__nccwpck_require__(6900)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + /** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ + const byteToHex = []; + + for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).substr(1)); + } + + function stringify(arr, offset = 0) { + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + const uuid = ( + byteToHex[arr[offset + 0]] + + byteToHex[arr[offset + 1]] + + byteToHex[arr[offset + 2]] + + byteToHex[arr[offset + 3]] + + "-" + + byteToHex[arr[offset + 4]] + + byteToHex[arr[offset + 5]] + + "-" + + byteToHex[arr[offset + 6]] + + byteToHex[arr[offset + 7]] + + "-" + + byteToHex[arr[offset + 8]] + + byteToHex[arr[offset + 9]] + + "-" + + byteToHex[arr[offset + 10]] + + byteToHex[arr[offset + 11]] + + byteToHex[arr[offset + 12]] + + byteToHex[arr[offset + 13]] + + byteToHex[arr[offset + 14]] + + byteToHex[arr[offset + 15]] + ).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields + + if (!(0, _validate.default)(uuid)) { + throw TypeError("Stringified UUID is invalid"); + } + + return uuid; + } + + var _default = stringify; + exports["default"] = _default; + + /***/ + }, + + /***/ 8628: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + + var _rng = _interopRequireDefault(__nccwpck_require__(807)); + + var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + // **`v1()` - Generate time-based UUID** + // + // Inspired by https://github.com/LiosK/UUID.js + // and http://docs.python.org/library/uuid.html + let _nodeId; + + let _clockseq; // Previous uuid creation time + + let _lastMSecs = 0; + let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details + + function v1(options, buf, offset) { + let i = (buf && offset) || 0; + const b = buf || new Array(16); + options = options || {}; + let node = options.node || _nodeId; + let clockseq = + options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || _rng.default)(); + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [ + seedBytes[0] | 0x01, + seedBytes[1], + seedBytes[2], + seedBytes[3], + seedBytes[4], + seedBytes[5], + ]; + } + + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = + ((seedBytes[6] << 8) | seedBytes[7]) & 0x3fff; + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + + let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + + let nsecs = + options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + + if (dt < 0 && options.clockseq === undefined) { + clockseq = (clockseq + 1) & 0x3fff; + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0; + } // Per 4.2.1.2 Throw error if too many uuids are requested + + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + } + + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + + msecs += 12219292800000; // `time_low` + + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = (tl >>> 24) & 0xff; + b[i++] = (tl >>> 16) & 0xff; + b[i++] = (tl >>> 8) & 0xff; + b[i++] = tl & 0xff; // `time_mid` + + const tmh = ((msecs / 0x100000000) * 10000) & 0xfffffff; + b[i++] = (tmh >>> 8) & 0xff; + b[i++] = tmh & 0xff; // `time_high_and_version` + + b[i++] = ((tmh >>> 24) & 0xf) | 0x10; // include version + + b[i++] = (tmh >>> 16) & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + + b[i++] = (clockseq >>> 8) | 0x80; // `clock_seq_low` + + b[i++] = clockseq & 0xff; // `node` + + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n]; + } + + return buf || (0, _stringify.default)(b); + } + + var _default = v1; + exports["default"] = _default; + + /***/ + }, + + /***/ 6409: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + + var _v = _interopRequireDefault(__nccwpck_require__(5998)); + + var _md = _interopRequireDefault(__nccwpck_require__(4569)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + const v3 = (0, _v.default)("v3", 0x30, _md.default); + var _default = v3; + exports["default"] = _default; + + /***/ + }, + + /***/ 5998: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = _default; + exports.URL = exports.DNS = void 0; + + var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + + var _parse = _interopRequireDefault(__nccwpck_require__(2746)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); // UTF8 escape + + const bytes = []; + + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)); + } + + return bytes; + } + + const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; + exports.DNS = DNS; + const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"; + exports.URL = URL; + + function _default(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + if (typeof value === "string") { + value = stringToBytes(value); + } + + if (typeof namespace === "string") { + namespace = (0, _parse.default)(namespace); + } + + if (namespace.length !== 16) { + throw TypeError( + "Namespace must be array-like (16 iterable integer values, 0-255)" + ); + } // Compute hash of namespace and value, Per 4.3 + // Future: Use spread syntax when supported on all platforms, e.g. `bytes = + // hashfunc([...namespace, ... value])` + + let bytes = new Uint8Array(16 + value.length); + bytes.set(namespace); + bytes.set(value, namespace.length); + bytes = hashfunc(bytes); + bytes[6] = (bytes[6] & 0x0f) | version; + bytes[8] = (bytes[8] & 0x3f) | 0x80; + + if (buf) { + offset = offset || 0; + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + + return buf; + } + + return (0, _stringify.default)(bytes); + } // Function#name is not settable on some platforms (#270) + + try { + generateUUID.name = name; // eslint-disable-next-line no-empty + } catch (err) {} // For CommonJS default export support + + generateUUID.DNS = DNS; + generateUUID.URL = URL; + return generateUUID; + } + + /***/ + }, + + /***/ 5122: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + + var _rng = _interopRequireDefault(__nccwpck_require__(807)); + + var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + function v4(options, buf, offset) { + options = options || {}; + + const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + + rnds[6] = (rnds[6] & 0x0f) | 0x40; + rnds[8] = (rnds[8] & 0x3f) | 0x80; // Copy bytes to buffer, if provided + + if (buf) { + offset = offset || 0; + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + + return buf; + } + + return (0, _stringify.default)(rnds); + } + + var _default = v4; + exports["default"] = _default; + + /***/ + }, + + /***/ 9120: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + + var _v = _interopRequireDefault(__nccwpck_require__(5998)); + + var _sha = _interopRequireDefault(__nccwpck_require__(5274)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + const v5 = (0, _v.default)("v5", 0x50, _sha.default); + var _default = v5; + exports["default"] = _default; + + /***/ + }, + + /***/ 6900: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + + var _regex = _interopRequireDefault(__nccwpck_require__(814)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + function validate(uuid) { + return typeof uuid === "string" && _regex.default.test(uuid); + } + + var _default = validate; + exports["default"] = _default; + + /***/ + }, + + /***/ 1595: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { + value: true, + }); + exports["default"] = void 0; + + var _validate = _interopRequireDefault(__nccwpck_require__(6900)); + + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + + function version(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError("Invalid UUID"); + } + + return parseInt(uuid.substr(14, 1), 16); + } + + var _default = version; + exports["default"] = _default; + + /***/ + }, + + /***/ 1452: /***/ function (__unused_webpack_module, exports) { + /** + * web-streams-polyfill v3.2.1 + */ + (function (global, factory) { + true ? factory(exports) : 0; + })(this, function (exports) { + "use strict"; + + /// + const SymbolPolyfill = + typeof Symbol === "function" && typeof Symbol.iterator === "symbol" + ? Symbol + : (description) => `Symbol(${description})`; + + /// + function noop() { + return undefined; + } + function getGlobals() { + if (typeof self !== "undefined") { + return self; + } else if (typeof window !== "undefined") { + return window; + } else if (typeof global !== "undefined") { + return global; + } + return undefined; + } + const globals = getGlobals(); + + function typeIsObject(x) { + return ( + (typeof x === "object" && x !== null) || typeof x === "function" + ); + } + const rethrowAssertionErrorRejection = noop; + + const originalPromise = Promise; + const originalPromiseThen = Promise.prototype.then; + const originalPromiseResolve = Promise.resolve.bind(originalPromise); + const originalPromiseReject = Promise.reject.bind(originalPromise); + function newPromise(executor) { + return new originalPromise(executor); + } + function promiseResolvedWith(value) { + return originalPromiseResolve(value); + } + function promiseRejectedWith(reason) { + return originalPromiseReject(reason); + } + function PerformPromiseThen(promise, onFulfilled, onRejected) { + // There doesn't appear to be any way to correctly emulate the behaviour from JavaScript, so this is just an + // approximation. + return originalPromiseThen.call(promise, onFulfilled, onRejected); + } + function uponPromise(promise, onFulfilled, onRejected) { + PerformPromiseThen( + PerformPromiseThen(promise, onFulfilled, onRejected), + undefined, + rethrowAssertionErrorRejection + ); + } + function uponFulfillment(promise, onFulfilled) { + uponPromise(promise, onFulfilled); + } + function uponRejection(promise, onRejected) { + uponPromise(promise, undefined, onRejected); + } + function transformPromiseWith( + promise, + fulfillmentHandler, + rejectionHandler + ) { + return PerformPromiseThen( + promise, + fulfillmentHandler, + rejectionHandler + ); + } + function setPromiseIsHandledToTrue(promise) { + PerformPromiseThen( + promise, + undefined, + rethrowAssertionErrorRejection + ); + } + const queueMicrotask = (() => { + const globalQueueMicrotask = globals && globals.queueMicrotask; + if (typeof globalQueueMicrotask === "function") { + return globalQueueMicrotask; + } + const resolvedPromise = promiseResolvedWith(undefined); + return (fn) => PerformPromiseThen(resolvedPromise, fn); + })(); + function reflectCall(F, V, args) { + if (typeof F !== "function") { + throw new TypeError("Argument is not a function"); + } + return Function.prototype.apply.call(F, V, args); + } + function promiseCall(F, V, args) { + try { + return promiseResolvedWith(reflectCall(F, V, args)); + } catch (value) { + return promiseRejectedWith(value); + } + } + + // Original from Chromium + // https://chromium.googlesource.com/chromium/src/+/0aee4434a4dba42a42abaea9bfbc0cd196a63bc1/third_party/blink/renderer/core/streams/SimpleQueue.js + const QUEUE_MAX_ARRAY_SIZE = 16384; + /** + * Simple queue structure. + * + * Avoids scalability issues with using a packed array directly by using + * multiple arrays in a linked list and keeping the array size bounded. + */ + class SimpleQueue { + constructor() { this._cursor = 0; this._size = 0; // _front and _back are always defined. this._front = { - _elements: [], - _next: undefined + _elements: [], + _next: undefined, }; this._back = this._front; // The cursor is used to avoid calling Array.shift(). @@ -14873,35 +21379,36 @@ exports["default"] = _default; this._cursor = 0; // When there is only one node, size === elements.length - cursor. this._size = 0; - } - get length() { + } + get length() { return this._size; - } - // For exception safety, this method is structured in order: - // 1. Read state - // 2. Calculate required state mutations - // 3. Perform state mutations - push(element) { + } + // For exception safety, this method is structured in order: + // 1. Read state + // 2. Calculate required state mutations + // 3. Perform state mutations + push(element) { const oldBack = this._back; let newBack = oldBack; if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) { - newBack = { - _elements: [], - _next: undefined - }; + newBack = { + _elements: [], + _next: undefined, + }; } // push() is the mutation most likely to throw an exception, so it // goes first. oldBack._elements.push(element); if (newBack !== oldBack) { - this._back = newBack; - oldBack._next = newBack; + this._back = newBack; + oldBack._next = newBack; } ++this._size; - } - // Like push(), shift() follows the read -> calculate -> mutate pattern for - // exception safety. - shift() { // must not be called on an empty queue + } + // Like push(), shift() follows the read -> calculate -> mutate pattern for + // exception safety. + shift() { + // must not be called on an empty queue const oldFront = this._front; let newFront = oldFront; const oldCursor = this._cursor; @@ -14909,906 +21416,1086 @@ exports["default"] = _default; const elements = oldFront._elements; const element = elements[oldCursor]; if (newCursor === QUEUE_MAX_ARRAY_SIZE) { - newFront = oldFront._next; - newCursor = 0; + newFront = oldFront._next; + newCursor = 0; } // No mutations before this point. --this._size; this._cursor = newCursor; if (oldFront !== newFront) { - this._front = newFront; + this._front = newFront; } // Permit shifted element to be garbage collected. elements[oldCursor] = undefined; return element; - } - // The tricky thing about forEach() is that it can be called - // re-entrantly. The queue may be mutated inside the callback. It is easy to - // see that push() within the callback has no negative effects since the end - // of the queue is checked for on every iteration. If shift() is called - // repeatedly within the callback then the next iteration may return an - // element that has been removed. In this case the callback will be called - // with undefined values until we either "catch up" with elements that still - // exist or reach the back of the queue. - forEach(callback) { + } + // The tricky thing about forEach() is that it can be called + // re-entrantly. The queue may be mutated inside the callback. It is easy to + // see that push() within the callback has no negative effects since the end + // of the queue is checked for on every iteration. If shift() is called + // repeatedly within the callback then the next iteration may return an + // element that has been removed. In this case the callback will be called + // with undefined values until we either "catch up" with elements that still + // exist or reach the back of the queue. + forEach(callback) { let i = this._cursor; let node = this._front; let elements = node._elements; while (i !== elements.length || node._next !== undefined) { - if (i === elements.length) { - node = node._next; - elements = node._elements; - i = 0; - if (elements.length === 0) { - break; - } + if (i === elements.length) { + node = node._next; + elements = node._elements; + i = 0; + if (elements.length === 0) { + break; } - callback(elements[i]); - ++i; + } + callback(elements[i]); + ++i; } - } - // Return the element that would be returned if shift() was called now, - // without modifying the queue. - peek() { // must not be called on an empty queue + } + // Return the element that would be returned if shift() was called now, + // without modifying the queue. + peek() { + // must not be called on an empty queue const front = this._front; const cursor = this._cursor; return front._elements[cursor]; + } } - } - function ReadableStreamReaderGenericInitialize(reader, stream) { - reader._ownerReadableStream = stream; - stream._reader = reader; - if (stream._state === 'readable') { + function ReadableStreamReaderGenericInitialize(reader, stream) { + reader._ownerReadableStream = stream; + stream._reader = reader; + if (stream._state === "readable") { defaultReaderClosedPromiseInitialize(reader); - } - else if (stream._state === 'closed') { + } else if (stream._state === "closed") { defaultReaderClosedPromiseInitializeAsResolved(reader); + } else { + defaultReaderClosedPromiseInitializeAsRejected( + reader, + stream._storedError + ); + } } - else { - defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); + // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state + // check. + function ReadableStreamReaderGenericCancel(reader, reason) { + const stream = reader._ownerReadableStream; + return ReadableStreamCancel(stream, reason); } - } - // A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state - // check. - function ReadableStreamReaderGenericCancel(reader, reason) { - const stream = reader._ownerReadableStream; - return ReadableStreamCancel(stream, reason); - } - function ReadableStreamReaderGenericRelease(reader) { - if (reader._ownerReadableStream._state === 'readable') { - defaultReaderClosedPromiseReject(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`)); + function ReadableStreamReaderGenericRelease(reader) { + if (reader._ownerReadableStream._state === "readable") { + defaultReaderClosedPromiseReject( + reader, + new TypeError( + `Reader was released and can no longer be used to monitor the stream's closedness` + ) + ); + } else { + defaultReaderClosedPromiseResetToRejected( + reader, + new TypeError( + `Reader was released and can no longer be used to monitor the stream's closedness` + ) + ); + } + reader._ownerReadableStream._reader = undefined; + reader._ownerReadableStream = undefined; } - else { - defaultReaderClosedPromiseResetToRejected(reader, new TypeError(`Reader was released and can no longer be used to monitor the stream's closedness`)); + // Helper functions for the readers. + function readerLockException(name) { + return new TypeError( + "Cannot " + name + " a stream using a released reader" + ); } - reader._ownerReadableStream._reader = undefined; - reader._ownerReadableStream = undefined; - } - // Helper functions for the readers. - function readerLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released reader'); - } - // Helper functions for the ReadableStreamDefaultReader. - function defaultReaderClosedPromiseInitialize(reader) { - reader._closedPromise = newPromise((resolve, reject) => { + // Helper functions for the ReadableStreamDefaultReader. + function defaultReaderClosedPromiseInitialize(reader) { + reader._closedPromise = newPromise((resolve, reject) => { reader._closedPromise_resolve = resolve; reader._closedPromise_reject = reject; - }); - } - function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { - defaultReaderClosedPromiseInitialize(reader); - defaultReaderClosedPromiseReject(reader, reason); - } - function defaultReaderClosedPromiseInitializeAsResolved(reader) { - defaultReaderClosedPromiseInitialize(reader); - defaultReaderClosedPromiseResolve(reader); - } - function defaultReaderClosedPromiseReject(reader, reason) { - if (reader._closedPromise_reject === undefined) { - return; + }); } - setPromiseIsHandledToTrue(reader._closedPromise); - reader._closedPromise_reject(reason); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - function defaultReaderClosedPromiseResetToRejected(reader, reason) { - defaultReaderClosedPromiseInitializeAsRejected(reader, reason); - } - function defaultReaderClosedPromiseResolve(reader) { - if (reader._closedPromise_resolve === undefined) { - return; + function defaultReaderClosedPromiseInitializeAsRejected( + reader, + reason + ) { + defaultReaderClosedPromiseInitialize(reader); + defaultReaderClosedPromiseReject(reader, reason); + } + function defaultReaderClosedPromiseInitializeAsResolved(reader) { + defaultReaderClosedPromiseInitialize(reader); + defaultReaderClosedPromiseResolve(reader); + } + function defaultReaderClosedPromiseReject(reader, reason) { + if (reader._closedPromise_reject === undefined) { + return; + } + setPromiseIsHandledToTrue(reader._closedPromise); + reader._closedPromise_reject(reason); + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; + } + function defaultReaderClosedPromiseResetToRejected(reader, reason) { + defaultReaderClosedPromiseInitializeAsRejected(reader, reason); + } + function defaultReaderClosedPromiseResolve(reader) { + if (reader._closedPromise_resolve === undefined) { + return; + } + reader._closedPromise_resolve(undefined); + reader._closedPromise_resolve = undefined; + reader._closedPromise_reject = undefined; } - reader._closedPromise_resolve(undefined); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - const AbortSteps = SymbolPolyfill('[[AbortSteps]]'); - const ErrorSteps = SymbolPolyfill('[[ErrorSteps]]'); - const CancelSteps = SymbolPolyfill('[[CancelSteps]]'); - const PullSteps = SymbolPolyfill('[[PullSteps]]'); + const AbortSteps = SymbolPolyfill("[[AbortSteps]]"); + const ErrorSteps = SymbolPolyfill("[[ErrorSteps]]"); + const CancelSteps = SymbolPolyfill("[[CancelSteps]]"); + const PullSteps = SymbolPolyfill("[[PullSteps]]"); - /// - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill - const NumberIsFinite = Number.isFinite || function (x) { - return typeof x === 'number' && isFinite(x); - }; + /// + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite#Polyfill + const NumberIsFinite = + Number.isFinite || + function (x) { + return typeof x === "number" && isFinite(x); + }; - /// - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill - const MathTrunc = Math.trunc || function (v) { - return v < 0 ? Math.ceil(v) : Math.floor(v); - }; + /// + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc#Polyfill + const MathTrunc = + Math.trunc || + function (v) { + return v < 0 ? Math.ceil(v) : Math.floor(v); + }; - // https://heycam.github.io/webidl/#idl-dictionaries - function isDictionary(x) { - return typeof x === 'object' || typeof x === 'function'; - } - function assertDictionary(obj, context) { - if (obj !== undefined && !isDictionary(obj)) { + // https://heycam.github.io/webidl/#idl-dictionaries + function isDictionary(x) { + return typeof x === "object" || typeof x === "function"; + } + function assertDictionary(obj, context) { + if (obj !== undefined && !isDictionary(obj)) { throw new TypeError(`${context} is not an object.`); + } } - } - // https://heycam.github.io/webidl/#idl-callback-functions - function assertFunction(x, context) { - if (typeof x !== 'function') { + // https://heycam.github.io/webidl/#idl-callback-functions + function assertFunction(x, context) { + if (typeof x !== "function") { throw new TypeError(`${context} is not a function.`); + } } - } - // https://heycam.github.io/webidl/#idl-object - function isObject(x) { - return (typeof x === 'object' && x !== null) || typeof x === 'function'; - } - function assertObject(x, context) { - if (!isObject(x)) { + // https://heycam.github.io/webidl/#idl-object + function isObject(x) { + return ( + (typeof x === "object" && x !== null) || typeof x === "function" + ); + } + function assertObject(x, context) { + if (!isObject(x)) { throw new TypeError(`${context} is not an object.`); + } } - } - function assertRequiredArgument(x, position, context) { - if (x === undefined) { - throw new TypeError(`Parameter ${position} is required in '${context}'.`); + function assertRequiredArgument(x, position, context) { + if (x === undefined) { + throw new TypeError( + `Parameter ${position} is required in '${context}'.` + ); + } } - } - function assertRequiredField(x, field, context) { - if (x === undefined) { + function assertRequiredField(x, field, context) { + if (x === undefined) { throw new TypeError(`${field} is required in '${context}'.`); + } } - } - // https://heycam.github.io/webidl/#idl-unrestricted-double - function convertUnrestrictedDouble(value) { - return Number(value); - } - function censorNegativeZero(x) { - return x === 0 ? 0 : x; - } - function integerPart(x) { - return censorNegativeZero(MathTrunc(x)); - } - // https://heycam.github.io/webidl/#idl-unsigned-long-long - function convertUnsignedLongLongWithEnforceRange(value, context) { - const lowerBound = 0; - const upperBound = Number.MAX_SAFE_INTEGER; - let x = Number(value); - x = censorNegativeZero(x); - if (!NumberIsFinite(x)) { + // https://heycam.github.io/webidl/#idl-unrestricted-double + function convertUnrestrictedDouble(value) { + return Number(value); + } + function censorNegativeZero(x) { + return x === 0 ? 0 : x; + } + function integerPart(x) { + return censorNegativeZero(MathTrunc(x)); + } + // https://heycam.github.io/webidl/#idl-unsigned-long-long + function convertUnsignedLongLongWithEnforceRange(value, context) { + const lowerBound = 0; + const upperBound = Number.MAX_SAFE_INTEGER; + let x = Number(value); + x = censorNegativeZero(x); + if (!NumberIsFinite(x)) { throw new TypeError(`${context} is not a finite number`); - } - x = integerPart(x); - if (x < lowerBound || x > upperBound) { - throw new TypeError(`${context} is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive`); - } - if (!NumberIsFinite(x) || x === 0) { + } + x = integerPart(x); + if (x < lowerBound || x > upperBound) { + throw new TypeError( + `${context} is outside the accepted range of ${lowerBound} to ${upperBound}, inclusive` + ); + } + if (!NumberIsFinite(x) || x === 0) { return 0; + } + // TODO Use BigInt if supported? + // let xBigInt = BigInt(integerPart(x)); + // xBigInt = BigInt.asUintN(64, xBigInt); + // return Number(xBigInt); + return x; } - // TODO Use BigInt if supported? - // let xBigInt = BigInt(integerPart(x)); - // xBigInt = BigInt.asUintN(64, xBigInt); - // return Number(xBigInt); - return x; - } - function assertReadableStream(x, context) { - if (!IsReadableStream(x)) { + function assertReadableStream(x, context) { + if (!IsReadableStream(x)) { throw new TypeError(`${context} is not a ReadableStream.`); + } } - } - // Abstract operations for the ReadableStream. - function AcquireReadableStreamDefaultReader(stream) { - return new ReadableStreamDefaultReader(stream); - } - // ReadableStream API exposed for controllers. - function ReadableStreamAddReadRequest(stream, readRequest) { - stream._reader._readRequests.push(readRequest); - } - function ReadableStreamFulfillReadRequest(stream, chunk, done) { - const reader = stream._reader; - const readRequest = reader._readRequests.shift(); - if (done) { + // Abstract operations for the ReadableStream. + function AcquireReadableStreamDefaultReader(stream) { + return new ReadableStreamDefaultReader(stream); + } + // ReadableStream API exposed for controllers. + function ReadableStreamAddReadRequest(stream, readRequest) { + stream._reader._readRequests.push(readRequest); + } + function ReadableStreamFulfillReadRequest(stream, chunk, done) { + const reader = stream._reader; + const readRequest = reader._readRequests.shift(); + if (done) { readRequest._closeSteps(); - } - else { + } else { readRequest._chunkSteps(chunk); + } } - } - function ReadableStreamGetNumReadRequests(stream) { - return stream._reader._readRequests.length; - } - function ReadableStreamHasDefaultReader(stream) { - const reader = stream._reader; - if (reader === undefined) { + function ReadableStreamGetNumReadRequests(stream) { + return stream._reader._readRequests.length; + } + function ReadableStreamHasDefaultReader(stream) { + const reader = stream._reader; + if (reader === undefined) { return false; - } - if (!IsReadableStreamDefaultReader(reader)) { + } + if (!IsReadableStreamDefaultReader(reader)) { return false; + } + return true; } - return true; - } - /** - * A default reader vended by a {@link ReadableStream}. - * - * @public - */ - class ReadableStreamDefaultReader { - constructor(stream) { - assertRequiredArgument(stream, 1, 'ReadableStreamDefaultReader'); - assertReadableStream(stream, 'First parameter'); + /** + * A default reader vended by a {@link ReadableStream}. + * + * @public + */ + class ReadableStreamDefaultReader { + constructor(stream) { + assertRequiredArgument(stream, 1, "ReadableStreamDefaultReader"); + assertReadableStream(stream, "First parameter"); if (IsReadableStreamLocked(stream)) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); + throw new TypeError( + "This stream has already been locked for exclusive reading by another reader" + ); } ReadableStreamReaderGenericInitialize(this, stream); this._readRequests = new SimpleQueue(); - } - /** - * Returns a promise that will be fulfilled when the stream becomes closed, - * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing. - */ - get closed() { + } + /** + * Returns a promise that will be fulfilled when the stream becomes closed, + * or rejected if the stream ever errors or the reader's lock is released before the stream finishes closing. + */ + get closed() { if (!IsReadableStreamDefaultReader(this)) { - return promiseRejectedWith(defaultReaderBrandCheckException('closed')); + return promiseRejectedWith( + defaultReaderBrandCheckException("closed") + ); } return this._closedPromise; - } - /** - * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}. - */ - cancel(reason = undefined) { + } + /** + * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}. + */ + cancel(reason = undefined) { if (!IsReadableStreamDefaultReader(this)) { - return promiseRejectedWith(defaultReaderBrandCheckException('cancel')); + return promiseRejectedWith( + defaultReaderBrandCheckException("cancel") + ); } if (this._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('cancel')); + return promiseRejectedWith(readerLockException("cancel")); } return ReadableStreamReaderGenericCancel(this, reason); - } - /** - * Returns a promise that allows access to the next chunk from the stream's internal queue, if available. - * - * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source. - */ - read() { + } + /** + * Returns a promise that allows access to the next chunk from the stream's internal queue, if available. + * + * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source. + */ + read() { if (!IsReadableStreamDefaultReader(this)) { - return promiseRejectedWith(defaultReaderBrandCheckException('read')); + return promiseRejectedWith( + defaultReaderBrandCheckException("read") + ); } if (this._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('read from')); + return promiseRejectedWith(readerLockException("read from")); } let resolvePromise; let rejectPromise; const promise = newPromise((resolve, reject) => { - resolvePromise = resolve; - rejectPromise = reject; + resolvePromise = resolve; + rejectPromise = reject; }); const readRequest = { - _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }), - _closeSteps: () => resolvePromise({ value: undefined, done: true }), - _errorSteps: e => rejectPromise(e) + _chunkSteps: (chunk) => + resolvePromise({ value: chunk, done: false }), + _closeSteps: () => + resolvePromise({ value: undefined, done: true }), + _errorSteps: (e) => rejectPromise(e), }; ReadableStreamDefaultReaderRead(this, readRequest); return promise; - } - /** - * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active. - * If the associated stream is errored when the lock is released, the reader will appear errored in the same way - * from now on; otherwise, the reader will appear closed. - * - * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by - * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to - * do so will throw a `TypeError` and leave the reader locked to the stream. - */ - releaseLock() { + } + /** + * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active. + * If the associated stream is errored when the lock is released, the reader will appear errored in the same way + * from now on; otherwise, the reader will appear closed. + * + * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by + * the reader's {@link ReadableStreamDefaultReader.read | read()} method has not yet been settled. Attempting to + * do so will throw a `TypeError` and leave the reader locked to the stream. + */ + releaseLock() { if (!IsReadableStreamDefaultReader(this)) { - throw defaultReaderBrandCheckException('releaseLock'); + throw defaultReaderBrandCheckException("releaseLock"); } if (this._ownerReadableStream === undefined) { - return; + return; } if (this._readRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); + throw new TypeError( + "Tried to release a reader lock when that reader has pending read() calls un-settled" + ); } ReadableStreamReaderGenericRelease(this); + } } - } - Object.defineProperties(ReadableStreamDefaultReader.prototype, { - cancel: { enumerable: true }, - read: { enumerable: true }, - releaseLock: { enumerable: true }, - closed: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(ReadableStreamDefaultReader.prototype, SymbolPolyfill.toStringTag, { - value: 'ReadableStreamDefaultReader', - configurable: true + Object.defineProperties(ReadableStreamDefaultReader.prototype, { + cancel: { enumerable: true }, + read: { enumerable: true }, + releaseLock: { enumerable: true }, + closed: { enumerable: true }, }); - } - // Abstract operations for the readers. - function IsReadableStreamDefaultReader(x) { - if (!typeIsObject(x)) { - return false; + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + ReadableStreamDefaultReader.prototype, + SymbolPolyfill.toStringTag, + { + value: "ReadableStreamDefaultReader", + configurable: true, + } + ); } - if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { + // Abstract operations for the readers. + function IsReadableStreamDefaultReader(x) { + if (!typeIsObject(x)) { return false; + } + if (!Object.prototype.hasOwnProperty.call(x, "_readRequests")) { + return false; + } + return x instanceof ReadableStreamDefaultReader; } - return x instanceof ReadableStreamDefaultReader; - } - function ReadableStreamDefaultReaderRead(reader, readRequest) { - const stream = reader._ownerReadableStream; - stream._disturbed = true; - if (stream._state === 'closed') { + function ReadableStreamDefaultReaderRead(reader, readRequest) { + const stream = reader._ownerReadableStream; + stream._disturbed = true; + if (stream._state === "closed") { readRequest._closeSteps(); - } - else if (stream._state === 'errored') { + } else if (stream._state === "errored") { readRequest._errorSteps(stream._storedError); - } - else { + } else { stream._readableStreamController[PullSteps](readRequest); + } + } + // Helper functions for the ReadableStreamDefaultReader. + function defaultReaderBrandCheckException(name) { + return new TypeError( + `ReadableStreamDefaultReader.prototype.${name} can only be used on a ReadableStreamDefaultReader` + ); } - } - // Helper functions for the ReadableStreamDefaultReader. - function defaultReaderBrandCheckException(name) { - return new TypeError(`ReadableStreamDefaultReader.prototype.${name} can only be used on a ReadableStreamDefaultReader`); - } - /// - /* eslint-disable @typescript-eslint/no-empty-function */ - const AsyncIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf(async function* () { }).prototype); + /// + /* eslint-disable @typescript-eslint/no-empty-function */ + const AsyncIteratorPrototype = Object.getPrototypeOf( + Object.getPrototypeOf(async function* () {}).prototype + ); - /// - class ReadableStreamAsyncIteratorImpl { - constructor(reader, preventCancel) { + /// + class ReadableStreamAsyncIteratorImpl { + constructor(reader, preventCancel) { this._ongoingPromise = undefined; this._isFinished = false; this._reader = reader; this._preventCancel = preventCancel; - } - next() { + } + next() { const nextSteps = () => this._nextSteps(); - this._ongoingPromise = this._ongoingPromise ? - transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) : - nextSteps(); + this._ongoingPromise = this._ongoingPromise + ? transformPromiseWith(this._ongoingPromise, nextSteps, nextSteps) + : nextSteps(); return this._ongoingPromise; - } - return(value) { + } + return(value) { const returnSteps = () => this._returnSteps(value); - return this._ongoingPromise ? - transformPromiseWith(this._ongoingPromise, returnSteps, returnSteps) : - returnSteps(); - } - _nextSteps() { + return this._ongoingPromise + ? transformPromiseWith( + this._ongoingPromise, + returnSteps, + returnSteps + ) + : returnSteps(); + } + _nextSteps() { if (this._isFinished) { - return Promise.resolve({ value: undefined, done: true }); + return Promise.resolve({ value: undefined, done: true }); } const reader = this._reader; if (reader._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('iterate')); + return promiseRejectedWith(readerLockException("iterate")); } let resolvePromise; let rejectPromise; const promise = newPromise((resolve, reject) => { - resolvePromise = resolve; - rejectPromise = reject; + resolvePromise = resolve; + rejectPromise = reject; }); const readRequest = { - _chunkSteps: chunk => { - this._ongoingPromise = undefined; - // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test. - // FIXME Is this a bug in the specification, or in the test? - queueMicrotask(() => resolvePromise({ value: chunk, done: false })); - }, - _closeSteps: () => { - this._ongoingPromise = undefined; - this._isFinished = true; - ReadableStreamReaderGenericRelease(reader); - resolvePromise({ value: undefined, done: true }); - }, - _errorSteps: reason => { - this._ongoingPromise = undefined; - this._isFinished = true; - ReadableStreamReaderGenericRelease(reader); - rejectPromise(reason); - } + _chunkSteps: (chunk) => { + this._ongoingPromise = undefined; + // This needs to be delayed by one microtask, otherwise we stop pulling too early which breaks a test. + // FIXME Is this a bug in the specification, or in the test? + queueMicrotask(() => + resolvePromise({ value: chunk, done: false }) + ); + }, + _closeSteps: () => { + this._ongoingPromise = undefined; + this._isFinished = true; + ReadableStreamReaderGenericRelease(reader); + resolvePromise({ value: undefined, done: true }); + }, + _errorSteps: (reason) => { + this._ongoingPromise = undefined; + this._isFinished = true; + ReadableStreamReaderGenericRelease(reader); + rejectPromise(reason); + }, }; ReadableStreamDefaultReaderRead(reader, readRequest); return promise; - } - _returnSteps(value) { + } + _returnSteps(value) { if (this._isFinished) { - return Promise.resolve({ value, done: true }); + return Promise.resolve({ value, done: true }); } this._isFinished = true; const reader = this._reader; if (reader._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('finish iterating')); + return promiseRejectedWith( + readerLockException("finish iterating") + ); } if (!this._preventCancel) { - const result = ReadableStreamReaderGenericCancel(reader, value); - ReadableStreamReaderGenericRelease(reader); - return transformPromiseWith(result, () => ({ value, done: true })); + const result = ReadableStreamReaderGenericCancel(reader, value); + ReadableStreamReaderGenericRelease(reader); + return transformPromiseWith(result, () => ({ + value, + done: true, + })); } ReadableStreamReaderGenericRelease(reader); return promiseResolvedWith({ value, done: true }); + } } - } - const ReadableStreamAsyncIteratorPrototype = { - next() { + const ReadableStreamAsyncIteratorPrototype = { + next() { if (!IsReadableStreamAsyncIterator(this)) { - return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next')); + return promiseRejectedWith( + streamAsyncIteratorBrandCheckException("next") + ); } return this._asyncIteratorImpl.next(); - }, - return(value) { + }, + return(value) { if (!IsReadableStreamAsyncIterator(this)) { - return promiseRejectedWith(streamAsyncIteratorBrandCheckException('return')); + return promiseRejectedWith( + streamAsyncIteratorBrandCheckException("return") + ); } return this._asyncIteratorImpl.return(value); + }, + }; + if (AsyncIteratorPrototype !== undefined) { + Object.setPrototypeOf( + ReadableStreamAsyncIteratorPrototype, + AsyncIteratorPrototype + ); } - }; - if (AsyncIteratorPrototype !== undefined) { - Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype); - } - // Abstract operations for the ReadableStream. - function AcquireReadableStreamAsyncIterator(stream, preventCancel) { - const reader = AcquireReadableStreamDefaultReader(stream); - const impl = new ReadableStreamAsyncIteratorImpl(reader, preventCancel); - const iterator = Object.create(ReadableStreamAsyncIteratorPrototype); - iterator._asyncIteratorImpl = impl; - return iterator; - } - function IsReadableStreamAsyncIterator(x) { - if (!typeIsObject(x)) { + // Abstract operations for the ReadableStream. + function AcquireReadableStreamAsyncIterator(stream, preventCancel) { + const reader = AcquireReadableStreamDefaultReader(stream); + const impl = new ReadableStreamAsyncIteratorImpl( + reader, + preventCancel + ); + const iterator = Object.create(ReadableStreamAsyncIteratorPrototype); + iterator._asyncIteratorImpl = impl; + return iterator; + } + function IsReadableStreamAsyncIterator(x) { + if (!typeIsObject(x)) { return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorImpl')) { + } + if (!Object.prototype.hasOwnProperty.call(x, "_asyncIteratorImpl")) { return false; - } - try { + } + try { // noinspection SuspiciousTypeOfGuard - return x._asyncIteratorImpl instanceof - ReadableStreamAsyncIteratorImpl; - } - catch (_a) { + return ( + x._asyncIteratorImpl instanceof ReadableStreamAsyncIteratorImpl + ); + } catch (_a) { return false; + } + } + // Helper functions for the ReadableStream. + function streamAsyncIteratorBrandCheckException(name) { + return new TypeError( + `ReadableStreamAsyncIterator.${name} can only be used on a ReadableSteamAsyncIterator` + ); } - } - // Helper functions for the ReadableStream. - function streamAsyncIteratorBrandCheckException(name) { - return new TypeError(`ReadableStreamAsyncIterator.${name} can only be used on a ReadableSteamAsyncIterator`); - } - /// - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill - const NumberIsNaN = Number.isNaN || function (x) { - // eslint-disable-next-line no-self-compare - return x !== x; - }; + /// + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN#Polyfill + const NumberIsNaN = + Number.isNaN || + function (x) { + // eslint-disable-next-line no-self-compare + return x !== x; + }; - function CreateArrayFromList(elements) { - // We use arrays to represent lists, so this is basically a no-op. - // Do a slice though just in case we happen to depend on the unique-ness. - return elements.slice(); - } - function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) { - new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); - } - // Not implemented correctly - function TransferArrayBuffer(O) { - return O; - } - // Not implemented correctly - // eslint-disable-next-line @typescript-eslint/no-unused-vars - function IsDetachedBuffer(O) { - return false; - } - function ArrayBufferSlice(buffer, begin, end) { - // ArrayBuffer.prototype.slice is not available on IE10 - // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice - if (buffer.slice) { + function CreateArrayFromList(elements) { + // We use arrays to represent lists, so this is basically a no-op. + // Do a slice though just in case we happen to depend on the unique-ness. + return elements.slice(); + } + function CopyDataBlockBytes(dest, destOffset, src, srcOffset, n) { + new Uint8Array(dest).set( + new Uint8Array(src, srcOffset, n), + destOffset + ); + } + // Not implemented correctly + function TransferArrayBuffer(O) { + return O; + } + // Not implemented correctly + // eslint-disable-next-line @typescript-eslint/no-unused-vars + function IsDetachedBuffer(O) { + return false; + } + function ArrayBufferSlice(buffer, begin, end) { + // ArrayBuffer.prototype.slice is not available on IE10 + // https://www.caniuse.com/mdn-javascript_builtins_arraybuffer_slice + if (buffer.slice) { return buffer.slice(begin, end); + } + const length = end - begin; + const slice = new ArrayBuffer(length); + CopyDataBlockBytes(slice, 0, buffer, begin, length); + return slice; } - const length = end - begin; - const slice = new ArrayBuffer(length); - CopyDataBlockBytes(slice, 0, buffer, begin, length); - return slice; - } - function IsNonNegativeNumber(v) { - if (typeof v !== 'number') { + function IsNonNegativeNumber(v) { + if (typeof v !== "number") { return false; - } - if (NumberIsNaN(v)) { + } + if (NumberIsNaN(v)) { return false; - } - if (v < 0) { + } + if (v < 0) { return false; + } + return true; + } + function CloneAsUint8Array(O) { + const buffer = ArrayBufferSlice( + O.buffer, + O.byteOffset, + O.byteOffset + O.byteLength + ); + return new Uint8Array(buffer); } - return true; - } - function CloneAsUint8Array(O) { - const buffer = ArrayBufferSlice(O.buffer, O.byteOffset, O.byteOffset + O.byteLength); - return new Uint8Array(buffer); - } - function DequeueValue(container) { - const pair = container._queue.shift(); - container._queueTotalSize -= pair.size; - if (container._queueTotalSize < 0) { + function DequeueValue(container) { + const pair = container._queue.shift(); + container._queueTotalSize -= pair.size; + if (container._queueTotalSize < 0) { container._queueTotalSize = 0; + } + return pair.value; } - return pair.value; - } - function EnqueueValueWithSize(container, value, size) { - if (!IsNonNegativeNumber(size) || size === Infinity) { - throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); + function EnqueueValueWithSize(container, value, size) { + if (!IsNonNegativeNumber(size) || size === Infinity) { + throw new RangeError( + "Size must be a finite, non-NaN, non-negative number." + ); + } + container._queue.push({ value, size }); + container._queueTotalSize += size; + } + function PeekQueueValue(container) { + const pair = container._queue.peek(); + return pair.value; + } + function ResetQueue(container) { + container._queue = new SimpleQueue(); + container._queueTotalSize = 0; } - container._queue.push({ value, size }); - container._queueTotalSize += size; - } - function PeekQueueValue(container) { - const pair = container._queue.peek(); - return pair.value; - } - function ResetQueue(container) { - container._queue = new SimpleQueue(); - container._queueTotalSize = 0; - } - /** - * A pull-into request in a {@link ReadableByteStreamController}. - * - * @public - */ - class ReadableStreamBYOBRequest { - constructor() { - throw new TypeError('Illegal constructor'); - } /** - * Returns the view for writing in to, or `null` if the BYOB request has already been responded to. + * A pull-into request in a {@link ReadableByteStreamController}. + * + * @public */ - get view() { + class ReadableStreamBYOBRequest { + constructor() { + throw new TypeError("Illegal constructor"); + } + /** + * Returns the view for writing in to, or `null` if the BYOB request has already been responded to. + */ + get view() { if (!IsReadableStreamBYOBRequest(this)) { - throw byobRequestBrandCheckException('view'); + throw byobRequestBrandCheckException("view"); } return this._view; - } - respond(bytesWritten) { + } + respond(bytesWritten) { if (!IsReadableStreamBYOBRequest(this)) { - throw byobRequestBrandCheckException('respond'); + throw byobRequestBrandCheckException("respond"); } - assertRequiredArgument(bytesWritten, 1, 'respond'); - bytesWritten = convertUnsignedLongLongWithEnforceRange(bytesWritten, 'First parameter'); + assertRequiredArgument(bytesWritten, 1, "respond"); + bytesWritten = convertUnsignedLongLongWithEnforceRange( + bytesWritten, + "First parameter" + ); if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); + throw new TypeError("This BYOB request has been invalidated"); } - if (IsDetachedBuffer(this._view.buffer)) ; - ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); - } - respondWithNewView(view) { + if (IsDetachedBuffer(this._view.buffer)); + ReadableByteStreamControllerRespond( + this._associatedReadableByteStreamController, + bytesWritten + ); + } + respondWithNewView(view) { if (!IsReadableStreamBYOBRequest(this)) { - throw byobRequestBrandCheckException('respondWithNewView'); + throw byobRequestBrandCheckException("respondWithNewView"); } - assertRequiredArgument(view, 1, 'respondWithNewView'); + assertRequiredArgument(view, 1, "respondWithNewView"); if (!ArrayBuffer.isView(view)) { - throw new TypeError('You can only respond with array buffer views'); + throw new TypeError( + "You can only respond with array buffer views" + ); } if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); + throw new TypeError("This BYOB request has been invalidated"); } - if (IsDetachedBuffer(view.buffer)) ; - ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); + if (IsDetachedBuffer(view.buffer)); + ReadableByteStreamControllerRespondWithNewView( + this._associatedReadableByteStreamController, + view + ); + } } - } - Object.defineProperties(ReadableStreamBYOBRequest.prototype, { - respond: { enumerable: true }, - respondWithNewView: { enumerable: true }, - view: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(ReadableStreamBYOBRequest.prototype, SymbolPolyfill.toStringTag, { - value: 'ReadableStreamBYOBRequest', - configurable: true + Object.defineProperties(ReadableStreamBYOBRequest.prototype, { + respond: { enumerable: true }, + respondWithNewView: { enumerable: true }, + view: { enumerable: true }, }); - } - /** - * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue. - * - * @public - */ - class ReadableByteStreamController { - constructor() { - throw new TypeError('Illegal constructor'); + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + ReadableStreamBYOBRequest.prototype, + SymbolPolyfill.toStringTag, + { + value: "ReadableStreamBYOBRequest", + configurable: true, + } + ); } /** - * Returns the current BYOB pull request, or `null` if there isn't one. + * Allows control of a {@link ReadableStream | readable byte stream}'s state and internal queue. + * + * @public */ - get byobRequest() { + class ReadableByteStreamController { + constructor() { + throw new TypeError("Illegal constructor"); + } + /** + * Returns the current BYOB pull request, or `null` if there isn't one. + */ + get byobRequest() { if (!IsReadableByteStreamController(this)) { - throw byteStreamControllerBrandCheckException('byobRequest'); + throw byteStreamControllerBrandCheckException("byobRequest"); } return ReadableByteStreamControllerGetBYOBRequest(this); - } - /** - * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is - * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure. - */ - get desiredSize() { + } + /** + * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is + * over-full. An underlying byte source ought to use this information to determine when and how to apply backpressure. + */ + get desiredSize() { if (!IsReadableByteStreamController(this)) { - throw byteStreamControllerBrandCheckException('desiredSize'); + throw byteStreamControllerBrandCheckException("desiredSize"); } return ReadableByteStreamControllerGetDesiredSize(this); - } - /** - * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from - * the stream, but once those are read, the stream will become closed. - */ - close() { + } + /** + * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from + * the stream, but once those are read, the stream will become closed. + */ + close() { if (!IsReadableByteStreamController(this)) { - throw byteStreamControllerBrandCheckException('close'); + throw byteStreamControllerBrandCheckException("close"); } if (this._closeRequested) { - throw new TypeError('The stream has already been closed; do not close it again!'); + throw new TypeError( + "The stream has already been closed; do not close it again!" + ); } const state = this._controlledReadableByteStream._state; - if (state !== 'readable') { - throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be closed`); + if (state !== "readable") { + throw new TypeError( + `The stream (in ${state} state) is not in the readable state and cannot be closed` + ); } ReadableByteStreamControllerClose(this); - } - enqueue(chunk) { + } + enqueue(chunk) { if (!IsReadableByteStreamController(this)) { - throw byteStreamControllerBrandCheckException('enqueue'); + throw byteStreamControllerBrandCheckException("enqueue"); } - assertRequiredArgument(chunk, 1, 'enqueue'); + assertRequiredArgument(chunk, 1, "enqueue"); if (!ArrayBuffer.isView(chunk)) { - throw new TypeError('chunk must be an array buffer view'); + throw new TypeError("chunk must be an array buffer view"); } if (chunk.byteLength === 0) { - throw new TypeError('chunk must have non-zero byteLength'); + throw new TypeError("chunk must have non-zero byteLength"); } if (chunk.buffer.byteLength === 0) { - throw new TypeError(`chunk's buffer must have non-zero byteLength`); + throw new TypeError( + `chunk's buffer must have non-zero byteLength` + ); } if (this._closeRequested) { - throw new TypeError('stream is closed or draining'); + throw new TypeError("stream is closed or draining"); } const state = this._controlledReadableByteStream._state; - if (state !== 'readable') { - throw new TypeError(`The stream (in ${state} state) is not in the readable state and cannot be enqueued to`); + if (state !== "readable") { + throw new TypeError( + `The stream (in ${state} state) is not in the readable state and cannot be enqueued to` + ); } ReadableByteStreamControllerEnqueue(this, chunk); - } - /** - * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`. - */ - error(e = undefined) { + } + /** + * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`. + */ + error(e = undefined) { if (!IsReadableByteStreamController(this)) { - throw byteStreamControllerBrandCheckException('error'); + throw byteStreamControllerBrandCheckException("error"); } ReadableByteStreamControllerError(this, e); - } - /** @internal */ - [CancelSteps](reason) { + } + /** @internal */ + [CancelSteps](reason) { ReadableByteStreamControllerClearPendingPullIntos(this); ResetQueue(this); const result = this._cancelAlgorithm(reason); ReadableByteStreamControllerClearAlgorithms(this); return result; - } - /** @internal */ - [PullSteps](readRequest) { + } + /** @internal */ + [PullSteps](readRequest) { const stream = this._controlledReadableByteStream; if (this._queueTotalSize > 0) { - const entry = this._queue.shift(); - this._queueTotalSize -= entry.byteLength; - ReadableByteStreamControllerHandleQueueDrain(this); - const view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); - readRequest._chunkSteps(view); - return; + const entry = this._queue.shift(); + this._queueTotalSize -= entry.byteLength; + ReadableByteStreamControllerHandleQueueDrain(this); + const view = new Uint8Array( + entry.buffer, + entry.byteOffset, + entry.byteLength + ); + readRequest._chunkSteps(view); + return; } const autoAllocateChunkSize = this._autoAllocateChunkSize; if (autoAllocateChunkSize !== undefined) { - let buffer; - try { - buffer = new ArrayBuffer(autoAllocateChunkSize); - } - catch (bufferE) { - readRequest._errorSteps(bufferE); - return; - } - const pullIntoDescriptor = { - buffer, - bufferByteLength: autoAllocateChunkSize, - byteOffset: 0, - byteLength: autoAllocateChunkSize, - bytesFilled: 0, - elementSize: 1, - viewConstructor: Uint8Array, - readerType: 'default' - }; - this._pendingPullIntos.push(pullIntoDescriptor); + let buffer; + try { + buffer = new ArrayBuffer(autoAllocateChunkSize); + } catch (bufferE) { + readRequest._errorSteps(bufferE); + return; + } + const pullIntoDescriptor = { + buffer, + bufferByteLength: autoAllocateChunkSize, + byteOffset: 0, + byteLength: autoAllocateChunkSize, + bytesFilled: 0, + elementSize: 1, + viewConstructor: Uint8Array, + readerType: "default", + }; + this._pendingPullIntos.push(pullIntoDescriptor); } ReadableStreamAddReadRequest(stream, readRequest); ReadableByteStreamControllerCallPullIfNeeded(this); + } } - } - Object.defineProperties(ReadableByteStreamController.prototype, { - close: { enumerable: true }, - enqueue: { enumerable: true }, - error: { enumerable: true }, - byobRequest: { enumerable: true }, - desiredSize: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(ReadableByteStreamController.prototype, SymbolPolyfill.toStringTag, { - value: 'ReadableByteStreamController', - configurable: true + Object.defineProperties(ReadableByteStreamController.prototype, { + close: { enumerable: true }, + enqueue: { enumerable: true }, + error: { enumerable: true }, + byobRequest: { enumerable: true }, + desiredSize: { enumerable: true }, }); - } - // Abstract operations for the ReadableByteStreamController. - function IsReadableByteStreamController(x) { - if (!typeIsObject(x)) { - return false; + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + ReadableByteStreamController.prototype, + SymbolPolyfill.toStringTag, + { + value: "ReadableByteStreamController", + configurable: true, + } + ); } - if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) { + // Abstract operations for the ReadableByteStreamController. + function IsReadableByteStreamController(x) { + if (!typeIsObject(x)) { return false; - } - return x instanceof ReadableByteStreamController; - } - function IsReadableStreamBYOBRequest(x) { - if (!typeIsObject(x)) { + } + if ( + !Object.prototype.hasOwnProperty.call( + x, + "_controlledReadableByteStream" + ) + ) { return false; + } + return x instanceof ReadableByteStreamController; } - if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { + function IsReadableStreamBYOBRequest(x) { + if (!typeIsObject(x)) { return false; + } + if ( + !Object.prototype.hasOwnProperty.call( + x, + "_associatedReadableByteStreamController" + ) + ) { + return false; + } + return x instanceof ReadableStreamBYOBRequest; } - return x instanceof ReadableStreamBYOBRequest; - } - function ReadableByteStreamControllerCallPullIfNeeded(controller) { - const shouldPull = ReadableByteStreamControllerShouldCallPull(controller); - if (!shouldPull) { + function ReadableByteStreamControllerCallPullIfNeeded(controller) { + const shouldPull = + ReadableByteStreamControllerShouldCallPull(controller); + if (!shouldPull) { return; - } - if (controller._pulling) { + } + if (controller._pulling) { controller._pullAgain = true; return; - } - controller._pulling = true; - // TODO: Test controller argument - const pullPromise = controller._pullAlgorithm(); - uponPromise(pullPromise, () => { - controller._pulling = false; - if (controller._pullAgain) { + } + controller._pulling = true; + // TODO: Test controller argument + const pullPromise = controller._pullAlgorithm(); + uponPromise( + pullPromise, + () => { + controller._pulling = false; + if (controller._pullAgain) { controller._pullAgain = false; ReadableByteStreamControllerCallPullIfNeeded(controller); + } + }, + (e) => { + ReadableByteStreamControllerError(controller, e); } - }, e => { - ReadableByteStreamControllerError(controller, e); - }); - } - function ReadableByteStreamControllerClearPendingPullIntos(controller) { - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - controller._pendingPullIntos = new SimpleQueue(); - } - function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { - let done = false; - if (stream._state === 'closed') { + ); + } + function ReadableByteStreamControllerClearPendingPullIntos(controller) { + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + controller._pendingPullIntos = new SimpleQueue(); + } + function ReadableByteStreamControllerCommitPullIntoDescriptor( + stream, + pullIntoDescriptor + ) { + let done = false; + if (stream._state === "closed") { done = true; - } - const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - if (pullIntoDescriptor.readerType === 'default') { + } + const filledView = + ReadableByteStreamControllerConvertPullIntoDescriptor( + pullIntoDescriptor + ); + if (pullIntoDescriptor.readerType === "default") { ReadableStreamFulfillReadRequest(stream, filledView, done); - } - else { + } else { ReadableStreamFulfillReadIntoRequest(stream, filledView, done); + } } - } - function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { - const bytesFilled = pullIntoDescriptor.bytesFilled; - const elementSize = pullIntoDescriptor.elementSize; - return new pullIntoDescriptor.viewConstructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); - } - function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { - controller._queue.push({ buffer, byteOffset, byteLength }); - controller._queueTotalSize += byteLength; - } - function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { - const elementSize = pullIntoDescriptor.elementSize; - const currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; - const maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); - const maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; - const maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; - let totalBytesToCopyRemaining = maxBytesToCopy; - let ready = false; - if (maxAlignedBytes > currentAlignedBytes) { - totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; + function ReadableByteStreamControllerConvertPullIntoDescriptor( + pullIntoDescriptor + ) { + const bytesFilled = pullIntoDescriptor.bytesFilled; + const elementSize = pullIntoDescriptor.elementSize; + return new pullIntoDescriptor.viewConstructor( + pullIntoDescriptor.buffer, + pullIntoDescriptor.byteOffset, + bytesFilled / elementSize + ); + } + function ReadableByteStreamControllerEnqueueChunkToQueue( + controller, + buffer, + byteOffset, + byteLength + ) { + controller._queue.push({ buffer, byteOffset, byteLength }); + controller._queueTotalSize += byteLength; + } + function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue( + controller, + pullIntoDescriptor + ) { + const elementSize = pullIntoDescriptor.elementSize; + const currentAlignedBytes = + pullIntoDescriptor.bytesFilled - + (pullIntoDescriptor.bytesFilled % elementSize); + const maxBytesToCopy = Math.min( + controller._queueTotalSize, + pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled + ); + const maxBytesFilled = + pullIntoDescriptor.bytesFilled + maxBytesToCopy; + const maxAlignedBytes = + maxBytesFilled - (maxBytesFilled % elementSize); + let totalBytesToCopyRemaining = maxBytesToCopy; + let ready = false; + if (maxAlignedBytes > currentAlignedBytes) { + totalBytesToCopyRemaining = + maxAlignedBytes - pullIntoDescriptor.bytesFilled; ready = true; - } - const queue = controller._queue; - while (totalBytesToCopyRemaining > 0) { + } + const queue = controller._queue; + while (totalBytesToCopyRemaining > 0) { const headOfQueue = queue.peek(); - const bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); - const destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - CopyDataBlockBytes(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); + const bytesToCopy = Math.min( + totalBytesToCopyRemaining, + headOfQueue.byteLength + ); + const destStart = + pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; + CopyDataBlockBytes( + pullIntoDescriptor.buffer, + destStart, + headOfQueue.buffer, + headOfQueue.byteOffset, + bytesToCopy + ); if (headOfQueue.byteLength === bytesToCopy) { - queue.shift(); - } - else { - headOfQueue.byteOffset += bytesToCopy; - headOfQueue.byteLength -= bytesToCopy; + queue.shift(); + } else { + headOfQueue.byteOffset += bytesToCopy; + headOfQueue.byteLength -= bytesToCopy; } controller._queueTotalSize -= bytesToCopy; - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); + ReadableByteStreamControllerFillHeadPullIntoDescriptor( + controller, + bytesToCopy, + pullIntoDescriptor + ); totalBytesToCopyRemaining -= bytesToCopy; + } + return ready; } - return ready; - } - function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { - pullIntoDescriptor.bytesFilled += size; - } - function ReadableByteStreamControllerHandleQueueDrain(controller) { - if (controller._queueTotalSize === 0 && controller._closeRequested) { + function ReadableByteStreamControllerFillHeadPullIntoDescriptor( + controller, + size, + pullIntoDescriptor + ) { + pullIntoDescriptor.bytesFilled += size; + } + function ReadableByteStreamControllerHandleQueueDrain(controller) { + if (controller._queueTotalSize === 0 && controller._closeRequested) { ReadableByteStreamControllerClearAlgorithms(controller); ReadableStreamClose(controller._controlledReadableByteStream); - } - else { + } else { ReadableByteStreamControllerCallPullIfNeeded(controller); + } } - } - function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { - if (controller._byobRequest === null) { + function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { + if (controller._byobRequest === null) { return; + } + controller._byobRequest._associatedReadableByteStreamController = + undefined; + controller._byobRequest._view = null; + controller._byobRequest = null; } - controller._byobRequest._associatedReadableByteStreamController = undefined; - controller._byobRequest._view = null; - controller._byobRequest = null; - } - function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { - while (controller._pendingPullIntos.length > 0) { + function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue( + controller + ) { + while (controller._pendingPullIntos.length > 0) { if (controller._queueTotalSize === 0) { - return; + return; } const pullIntoDescriptor = controller._pendingPullIntos.peek(); - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) { - ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor); + if ( + ReadableByteStreamControllerFillPullIntoDescriptorFromQueue( + controller, + pullIntoDescriptor + ) + ) { + ReadableByteStreamControllerShiftPendingPullInto(controller); + ReadableByteStreamControllerCommitPullIntoDescriptor( + controller._controlledReadableByteStream, + pullIntoDescriptor + ); } + } } - } - function ReadableByteStreamControllerPullInto(controller, view, readIntoRequest) { - const stream = controller._controlledReadableByteStream; - let elementSize = 1; - if (view.constructor !== DataView) { + function ReadableByteStreamControllerPullInto( + controller, + view, + readIntoRequest + ) { + const stream = controller._controlledReadableByteStream; + let elementSize = 1; + if (view.constructor !== DataView) { elementSize = view.constructor.BYTES_PER_ELEMENT; - } - const ctor = view.constructor; - // try { - const buffer = TransferArrayBuffer(view.buffer); - // } catch (e) { - // readIntoRequest._errorSteps(e); - // return; - // } - const pullIntoDescriptor = { + } + const ctor = view.constructor; + // try { + const buffer = TransferArrayBuffer(view.buffer); + // } catch (e) { + // readIntoRequest._errorSteps(e); + // return; + // } + const pullIntoDescriptor = { buffer, bufferByteLength: buffer.byteLength, byteOffset: view.byteOffset, @@ -15816,7181 +22503,8884 @@ exports["default"] = _default; bytesFilled: 0, elementSize, viewConstructor: ctor, - readerType: 'byob' - }; - if (controller._pendingPullIntos.length > 0) { + readerType: "byob", + }; + if (controller._pendingPullIntos.length > 0) { controller._pendingPullIntos.push(pullIntoDescriptor); // No ReadableByteStreamControllerCallPullIfNeeded() call since: // - No change happens on desiredSize // - The source has already been notified of that there's at least 1 pending read(view) ReadableStreamAddReadIntoRequest(stream, readIntoRequest); return; - } - if (stream._state === 'closed') { - const emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); + } + if (stream._state === "closed") { + const emptyView = new ctor( + pullIntoDescriptor.buffer, + pullIntoDescriptor.byteOffset, + 0 + ); readIntoRequest._closeSteps(emptyView); return; - } - if (controller._queueTotalSize > 0) { - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor)) { - const filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - ReadableByteStreamControllerHandleQueueDrain(controller); - readIntoRequest._chunkSteps(filledView); - return; + } + if (controller._queueTotalSize > 0) { + if ( + ReadableByteStreamControllerFillPullIntoDescriptorFromQueue( + controller, + pullIntoDescriptor + ) + ) { + const filledView = + ReadableByteStreamControllerConvertPullIntoDescriptor( + pullIntoDescriptor + ); + ReadableByteStreamControllerHandleQueueDrain(controller); + readIntoRequest._chunkSteps(filledView); + return; } if (controller._closeRequested) { - const e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - readIntoRequest._errorSteps(e); - return; + const e = new TypeError( + "Insufficient bytes to fill elements in the given buffer" + ); + ReadableByteStreamControllerError(controller, e); + readIntoRequest._errorSteps(e); + return; } + } + controller._pendingPullIntos.push(pullIntoDescriptor); + ReadableStreamAddReadIntoRequest(stream, readIntoRequest); + ReadableByteStreamControllerCallPullIfNeeded(controller); } - controller._pendingPullIntos.push(pullIntoDescriptor); - ReadableStreamAddReadIntoRequest(stream, readIntoRequest); - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { - const stream = controller._controlledReadableByteStream; - if (ReadableStreamHasBYOBReader(stream)) { + function ReadableByteStreamControllerRespondInClosedState( + controller, + firstDescriptor + ) { + const stream = controller._controlledReadableByteStream; + if (ReadableStreamHasBYOBReader(stream)) { while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { - const pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); + const pullIntoDescriptor = + ReadableByteStreamControllerShiftPendingPullInto(controller); + ReadableByteStreamControllerCommitPullIntoDescriptor( + stream, + pullIntoDescriptor + ); } + } } - } - function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); - if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { + function ReadableByteStreamControllerRespondInReadableState( + controller, + bytesWritten, + pullIntoDescriptor + ) { + ReadableByteStreamControllerFillHeadPullIntoDescriptor( + controller, + bytesWritten, + pullIntoDescriptor + ); + if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { return; + } + ReadableByteStreamControllerShiftPendingPullInto(controller); + const remainderSize = + pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; + if (remainderSize > 0) { + const end = + pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; + const remainder = ArrayBufferSlice( + pullIntoDescriptor.buffer, + end - remainderSize, + end + ); + ReadableByteStreamControllerEnqueueChunkToQueue( + controller, + remainder, + 0, + remainder.byteLength + ); + } + pullIntoDescriptor.bytesFilled -= remainderSize; + ReadableByteStreamControllerCommitPullIntoDescriptor( + controller._controlledReadableByteStream, + pullIntoDescriptor + ); + ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue( + controller + ); } - ReadableByteStreamControllerShiftPendingPullInto(controller); - const remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; - if (remainderSize > 0) { - const end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - const remainder = ArrayBufferSlice(pullIntoDescriptor.buffer, end - remainderSize, end); - ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); - } - pullIntoDescriptor.bytesFilled -= remainderSize; - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); - } - function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { - const firstDescriptor = controller._pendingPullIntos.peek(); - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - const state = controller._controlledReadableByteStream._state; - if (state === 'closed') { + function ReadableByteStreamControllerRespondInternal( + controller, + bytesWritten + ) { + const firstDescriptor = controller._pendingPullIntos.peek(); + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + const state = controller._controlledReadableByteStream._state; + if (state === "closed") { ReadableByteStreamControllerRespondInClosedState(controller); + } else { + ReadableByteStreamControllerRespondInReadableState( + controller, + bytesWritten, + firstDescriptor + ); + } + ReadableByteStreamControllerCallPullIfNeeded(controller); } - else { - ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); + function ReadableByteStreamControllerShiftPendingPullInto(controller) { + const descriptor = controller._pendingPullIntos.shift(); + return descriptor; } - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - function ReadableByteStreamControllerShiftPendingPullInto(controller) { - const descriptor = controller._pendingPullIntos.shift(); - return descriptor; - } - function ReadableByteStreamControllerShouldCallPull(controller) { - const stream = controller._controlledReadableByteStream; - if (stream._state !== 'readable') { + function ReadableByteStreamControllerShouldCallPull(controller) { + const stream = controller._controlledReadableByteStream; + if (stream._state !== "readable") { return false; - } - if (controller._closeRequested) { + } + if (controller._closeRequested) { return false; - } - if (!controller._started) { + } + if (!controller._started) { return false; - } - if (ReadableStreamHasDefaultReader(stream) && ReadableStreamGetNumReadRequests(stream) > 0) { + } + if ( + ReadableStreamHasDefaultReader(stream) && + ReadableStreamGetNumReadRequests(stream) > 0 + ) { return true; - } - if (ReadableStreamHasBYOBReader(stream) && ReadableStreamGetNumReadIntoRequests(stream) > 0) { + } + if ( + ReadableStreamHasBYOBReader(stream) && + ReadableStreamGetNumReadIntoRequests(stream) > 0 + ) { return true; - } - const desiredSize = ReadableByteStreamControllerGetDesiredSize(controller); - if (desiredSize > 0) { + } + const desiredSize = + ReadableByteStreamControllerGetDesiredSize(controller); + if (desiredSize > 0) { return true; + } + return false; } - return false; - } - function ReadableByteStreamControllerClearAlgorithms(controller) { - controller._pullAlgorithm = undefined; - controller._cancelAlgorithm = undefined; - } - // A client of ReadableByteStreamController may use these functions directly to bypass state check. - function ReadableByteStreamControllerClose(controller) { - const stream = controller._controlledReadableByteStream; - if (controller._closeRequested || stream._state !== 'readable') { + function ReadableByteStreamControllerClearAlgorithms(controller) { + controller._pullAlgorithm = undefined; + controller._cancelAlgorithm = undefined; + } + // A client of ReadableByteStreamController may use these functions directly to bypass state check. + function ReadableByteStreamControllerClose(controller) { + const stream = controller._controlledReadableByteStream; + if (controller._closeRequested || stream._state !== "readable") { return; - } - if (controller._queueTotalSize > 0) { + } + if (controller._queueTotalSize > 0) { controller._closeRequested = true; return; - } - if (controller._pendingPullIntos.length > 0) { + } + if (controller._pendingPullIntos.length > 0) { const firstPendingPullInto = controller._pendingPullIntos.peek(); if (firstPendingPullInto.bytesFilled > 0) { - const e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - throw e; + const e = new TypeError( + "Insufficient bytes to fill elements in the given buffer" + ); + ReadableByteStreamControllerError(controller, e); + throw e; } + } + ReadableByteStreamControllerClearAlgorithms(controller); + ReadableStreamClose(stream); } - ReadableByteStreamControllerClearAlgorithms(controller); - ReadableStreamClose(stream); - } - function ReadableByteStreamControllerEnqueue(controller, chunk) { - const stream = controller._controlledReadableByteStream; - if (controller._closeRequested || stream._state !== 'readable') { + function ReadableByteStreamControllerEnqueue(controller, chunk) { + const stream = controller._controlledReadableByteStream; + if (controller._closeRequested || stream._state !== "readable") { return; - } - const buffer = chunk.buffer; - const byteOffset = chunk.byteOffset; - const byteLength = chunk.byteLength; - const transferredBuffer = TransferArrayBuffer(buffer); - if (controller._pendingPullIntos.length > 0) { + } + const buffer = chunk.buffer; + const byteOffset = chunk.byteOffset; + const byteLength = chunk.byteLength; + const transferredBuffer = TransferArrayBuffer(buffer); + if (controller._pendingPullIntos.length > 0) { const firstPendingPullInto = controller._pendingPullIntos.peek(); - if (IsDetachedBuffer(firstPendingPullInto.buffer)) ; - firstPendingPullInto.buffer = TransferArrayBuffer(firstPendingPullInto.buffer); - } - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - if (ReadableStreamHasDefaultReader(stream)) { + if (IsDetachedBuffer(firstPendingPullInto.buffer)); + firstPendingPullInto.buffer = TransferArrayBuffer( + firstPendingPullInto.buffer + ); + } + ReadableByteStreamControllerInvalidateBYOBRequest(controller); + if (ReadableStreamHasDefaultReader(stream)) { if (ReadableStreamGetNumReadRequests(stream) === 0) { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); + ReadableByteStreamControllerEnqueueChunkToQueue( + controller, + transferredBuffer, + byteOffset, + byteLength + ); + } else { + if (controller._pendingPullIntos.length > 0) { + ReadableByteStreamControllerShiftPendingPullInto(controller); + } + const transferredView = new Uint8Array( + transferredBuffer, + byteOffset, + byteLength + ); + ReadableStreamFulfillReadRequest(stream, transferredView, false); } - else { - if (controller._pendingPullIntos.length > 0) { - ReadableByteStreamControllerShiftPendingPullInto(controller); - } - const transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); - ReadableStreamFulfillReadRequest(stream, transferredView, false); - } - } - else if (ReadableStreamHasBYOBReader(stream)) { + } else if (ReadableStreamHasBYOBReader(stream)) { // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully. - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); + ReadableByteStreamControllerEnqueueChunkToQueue( + controller, + transferredBuffer, + byteOffset, + byteLength + ); + ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue( + controller + ); + } else { + ReadableByteStreamControllerEnqueueChunkToQueue( + controller, + transferredBuffer, + byteOffset, + byteLength + ); + } + ReadableByteStreamControllerCallPullIfNeeded(controller); } - else { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - } - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - function ReadableByteStreamControllerError(controller, e) { - const stream = controller._controlledReadableByteStream; - if (stream._state !== 'readable') { + function ReadableByteStreamControllerError(controller, e) { + const stream = controller._controlledReadableByteStream; + if (stream._state !== "readable") { return; + } + ReadableByteStreamControllerClearPendingPullIntos(controller); + ResetQueue(controller); + ReadableByteStreamControllerClearAlgorithms(controller); + ReadableStreamError(stream, e); } - ReadableByteStreamControllerClearPendingPullIntos(controller); - ResetQueue(controller); - ReadableByteStreamControllerClearAlgorithms(controller); - ReadableStreamError(stream, e); - } - function ReadableByteStreamControllerGetBYOBRequest(controller) { - if (controller._byobRequest === null && controller._pendingPullIntos.length > 0) { + function ReadableByteStreamControllerGetBYOBRequest(controller) { + if ( + controller._byobRequest === null && + controller._pendingPullIntos.length > 0 + ) { const firstDescriptor = controller._pendingPullIntos.peek(); - const view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); - const byobRequest = Object.create(ReadableStreamBYOBRequest.prototype); + const view = new Uint8Array( + firstDescriptor.buffer, + firstDescriptor.byteOffset + firstDescriptor.bytesFilled, + firstDescriptor.byteLength - firstDescriptor.bytesFilled + ); + const byobRequest = Object.create( + ReadableStreamBYOBRequest.prototype + ); SetUpReadableStreamBYOBRequest(byobRequest, controller, view); controller._byobRequest = byobRequest; + } + return controller._byobRequest; } - return controller._byobRequest; - } - function ReadableByteStreamControllerGetDesiredSize(controller) { - const state = controller._controlledReadableByteStream._state; - if (state === 'errored') { + function ReadableByteStreamControllerGetDesiredSize(controller) { + const state = controller._controlledReadableByteStream._state; + if (state === "errored") { return null; - } - if (state === 'closed') { + } + if (state === "closed") { return 0; + } + return controller._strategyHWM - controller._queueTotalSize; } - return controller._strategyHWM - controller._queueTotalSize; - } - function ReadableByteStreamControllerRespond(controller, bytesWritten) { - const firstDescriptor = controller._pendingPullIntos.peek(); - const state = controller._controlledReadableByteStream._state; - if (state === 'closed') { + function ReadableByteStreamControllerRespond(controller, bytesWritten) { + const firstDescriptor = controller._pendingPullIntos.peek(); + const state = controller._controlledReadableByteStream._state; + if (state === "closed") { if (bytesWritten !== 0) { - throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); + throw new TypeError( + "bytesWritten must be 0 when calling respond() on a closed stream" + ); } - } - else { + } else { if (bytesWritten === 0) { - throw new TypeError('bytesWritten must be greater than 0 when calling respond() on a readable stream'); + throw new TypeError( + "bytesWritten must be greater than 0 when calling respond() on a readable stream" + ); } - if (firstDescriptor.bytesFilled + bytesWritten > firstDescriptor.byteLength) { - throw new RangeError('bytesWritten out of range'); + if ( + firstDescriptor.bytesFilled + bytesWritten > + firstDescriptor.byteLength + ) { + throw new RangeError("bytesWritten out of range"); } + } + firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); + ReadableByteStreamControllerRespondInternal(controller, bytesWritten); } - firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); - ReadableByteStreamControllerRespondInternal(controller, bytesWritten); - } - function ReadableByteStreamControllerRespondWithNewView(controller, view) { - const firstDescriptor = controller._pendingPullIntos.peek(); - const state = controller._controlledReadableByteStream._state; - if (state === 'closed') { + function ReadableByteStreamControllerRespondWithNewView( + controller, + view + ) { + const firstDescriptor = controller._pendingPullIntos.peek(); + const state = controller._controlledReadableByteStream._state; + if (state === "closed") { if (view.byteLength !== 0) { - throw new TypeError('The view\'s length must be 0 when calling respondWithNewView() on a closed stream'); + throw new TypeError( + "The view's length must be 0 when calling respondWithNewView() on a closed stream" + ); } - } - else { + } else { if (view.byteLength === 0) { - throw new TypeError('The view\'s length must be greater than 0 when calling respondWithNewView() on a readable stream'); + throw new TypeError( + "The view's length must be greater than 0 when calling respondWithNewView() on a readable stream" + ); } + } + if ( + firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== + view.byteOffset + ) { + throw new RangeError( + "The region specified by view does not match byobRequest" + ); + } + if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) { + throw new RangeError( + "The buffer of view has different capacity than byobRequest" + ); + } + if ( + firstDescriptor.bytesFilled + view.byteLength > + firstDescriptor.byteLength + ) { + throw new RangeError( + "The region specified by view is larger than byobRequest" + ); + } + const viewByteLength = view.byteLength; + firstDescriptor.buffer = TransferArrayBuffer(view.buffer); + ReadableByteStreamControllerRespondInternal( + controller, + viewByteLength + ); } - if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { - throw new RangeError('The region specified by view does not match byobRequest'); + function SetUpReadableByteStreamController( + stream, + controller, + startAlgorithm, + pullAlgorithm, + cancelAlgorithm, + highWaterMark, + autoAllocateChunkSize + ) { + controller._controlledReadableByteStream = stream; + controller._pullAgain = false; + controller._pulling = false; + controller._byobRequest = null; + // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly. + controller._queue = controller._queueTotalSize = undefined; + ResetQueue(controller); + controller._closeRequested = false; + controller._started = false; + controller._strategyHWM = highWaterMark; + controller._pullAlgorithm = pullAlgorithm; + controller._cancelAlgorithm = cancelAlgorithm; + controller._autoAllocateChunkSize = autoAllocateChunkSize; + controller._pendingPullIntos = new SimpleQueue(); + stream._readableStreamController = controller; + const startResult = startAlgorithm(); + uponPromise( + promiseResolvedWith(startResult), + () => { + controller._started = true; + ReadableByteStreamControllerCallPullIfNeeded(controller); + }, + (r) => { + ReadableByteStreamControllerError(controller, r); + } + ); } - if (firstDescriptor.bufferByteLength !== view.buffer.byteLength) { - throw new RangeError('The buffer of view has different capacity than byobRequest'); - } - if (firstDescriptor.bytesFilled + view.byteLength > firstDescriptor.byteLength) { - throw new RangeError('The region specified by view is larger than byobRequest'); - } - const viewByteLength = view.byteLength; - firstDescriptor.buffer = TransferArrayBuffer(view.buffer); - ReadableByteStreamControllerRespondInternal(controller, viewByteLength); - } - function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) { - controller._controlledReadableByteStream = stream; - controller._pullAgain = false; - controller._pulling = false; - controller._byobRequest = null; - // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly. - controller._queue = controller._queueTotalSize = undefined; - ResetQueue(controller); - controller._closeRequested = false; - controller._started = false; - controller._strategyHWM = highWaterMark; - controller._pullAlgorithm = pullAlgorithm; - controller._cancelAlgorithm = cancelAlgorithm; - controller._autoAllocateChunkSize = autoAllocateChunkSize; - controller._pendingPullIntos = new SimpleQueue(); - stream._readableStreamController = controller; - const startResult = startAlgorithm(); - uponPromise(promiseResolvedWith(startResult), () => { - controller._started = true; - ReadableByteStreamControllerCallPullIfNeeded(controller); - }, r => { - ReadableByteStreamControllerError(controller, r); - }); - } - function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) { - const controller = Object.create(ReadableByteStreamController.prototype); - let startAlgorithm = () => undefined; - let pullAlgorithm = () => promiseResolvedWith(undefined); - let cancelAlgorithm = () => promiseResolvedWith(undefined); - if (underlyingByteSource.start !== undefined) { + function SetUpReadableByteStreamControllerFromUnderlyingSource( + stream, + underlyingByteSource, + highWaterMark + ) { + const controller = Object.create( + ReadableByteStreamController.prototype + ); + let startAlgorithm = () => undefined; + let pullAlgorithm = () => promiseResolvedWith(undefined); + let cancelAlgorithm = () => promiseResolvedWith(undefined); + if (underlyingByteSource.start !== undefined) { startAlgorithm = () => underlyingByteSource.start(controller); - } - if (underlyingByteSource.pull !== undefined) { + } + if (underlyingByteSource.pull !== undefined) { pullAlgorithm = () => underlyingByteSource.pull(controller); + } + if (underlyingByteSource.cancel !== undefined) { + cancelAlgorithm = (reason) => underlyingByteSource.cancel(reason); + } + const autoAllocateChunkSize = + underlyingByteSource.autoAllocateChunkSize; + if (autoAllocateChunkSize === 0) { + throw new TypeError("autoAllocateChunkSize must be greater than 0"); + } + SetUpReadableByteStreamController( + stream, + controller, + startAlgorithm, + pullAlgorithm, + cancelAlgorithm, + highWaterMark, + autoAllocateChunkSize + ); } - if (underlyingByteSource.cancel !== undefined) { - cancelAlgorithm = reason => underlyingByteSource.cancel(reason); + function SetUpReadableStreamBYOBRequest(request, controller, view) { + request._associatedReadableByteStreamController = controller; + request._view = view; } - const autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; - if (autoAllocateChunkSize === 0) { - throw new TypeError('autoAllocateChunkSize must be greater than 0'); + // Helper functions for the ReadableStreamBYOBRequest. + function byobRequestBrandCheckException(name) { + return new TypeError( + `ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest` + ); + } + // Helper functions for the ReadableByteStreamController. + function byteStreamControllerBrandCheckException(name) { + return new TypeError( + `ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController` + ); } - SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize); - } - function SetUpReadableStreamBYOBRequest(request, controller, view) { - request._associatedReadableByteStreamController = controller; - request._view = view; - } - // Helper functions for the ReadableStreamBYOBRequest. - function byobRequestBrandCheckException(name) { - return new TypeError(`ReadableStreamBYOBRequest.prototype.${name} can only be used on a ReadableStreamBYOBRequest`); - } - // Helper functions for the ReadableByteStreamController. - function byteStreamControllerBrandCheckException(name) { - return new TypeError(`ReadableByteStreamController.prototype.${name} can only be used on a ReadableByteStreamController`); - } - // Abstract operations for the ReadableStream. - function AcquireReadableStreamBYOBReader(stream) { - return new ReadableStreamBYOBReader(stream); - } - // ReadableStream API exposed for controllers. - function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) { - stream._reader._readIntoRequests.push(readIntoRequest); - } - function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { - const reader = stream._reader; - const readIntoRequest = reader._readIntoRequests.shift(); - if (done) { + // Abstract operations for the ReadableStream. + function AcquireReadableStreamBYOBReader(stream) { + return new ReadableStreamBYOBReader(stream); + } + // ReadableStream API exposed for controllers. + function ReadableStreamAddReadIntoRequest(stream, readIntoRequest) { + stream._reader._readIntoRequests.push(readIntoRequest); + } + function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { + const reader = stream._reader; + const readIntoRequest = reader._readIntoRequests.shift(); + if (done) { readIntoRequest._closeSteps(chunk); - } - else { + } else { readIntoRequest._chunkSteps(chunk); + } } - } - function ReadableStreamGetNumReadIntoRequests(stream) { - return stream._reader._readIntoRequests.length; - } - function ReadableStreamHasBYOBReader(stream) { - const reader = stream._reader; - if (reader === undefined) { + function ReadableStreamGetNumReadIntoRequests(stream) { + return stream._reader._readIntoRequests.length; + } + function ReadableStreamHasBYOBReader(stream) { + const reader = stream._reader; + if (reader === undefined) { return false; - } - if (!IsReadableStreamBYOBReader(reader)) { + } + if (!IsReadableStreamBYOBReader(reader)) { return false; + } + return true; } - return true; - } - /** - * A BYOB reader vended by a {@link ReadableStream}. - * - * @public - */ - class ReadableStreamBYOBReader { - constructor(stream) { - assertRequiredArgument(stream, 1, 'ReadableStreamBYOBReader'); - assertReadableStream(stream, 'First parameter'); + /** + * A BYOB reader vended by a {@link ReadableStream}. + * + * @public + */ + class ReadableStreamBYOBReader { + constructor(stream) { + assertRequiredArgument(stream, 1, "ReadableStreamBYOBReader"); + assertReadableStream(stream, "First parameter"); if (IsReadableStreamLocked(stream)) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); + throw new TypeError( + "This stream has already been locked for exclusive reading by another reader" + ); } - if (!IsReadableByteStreamController(stream._readableStreamController)) { - throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + - 'source'); + if ( + !IsReadableByteStreamController(stream._readableStreamController) + ) { + throw new TypeError( + "Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte " + + "source" + ); } ReadableStreamReaderGenericInitialize(this, stream); this._readIntoRequests = new SimpleQueue(); - } - /** - * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or - * the reader's lock is released before the stream finishes closing. - */ - get closed() { + } + /** + * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or + * the reader's lock is released before the stream finishes closing. + */ + get closed() { if (!IsReadableStreamBYOBReader(this)) { - return promiseRejectedWith(byobReaderBrandCheckException('closed')); + return promiseRejectedWith( + byobReaderBrandCheckException("closed") + ); } return this._closedPromise; - } - /** - * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}. - */ - cancel(reason = undefined) { + } + /** + * If the reader is active, behaves the same as {@link ReadableStream.cancel | stream.cancel(reason)}. + */ + cancel(reason = undefined) { if (!IsReadableStreamBYOBReader(this)) { - return promiseRejectedWith(byobReaderBrandCheckException('cancel')); + return promiseRejectedWith( + byobReaderBrandCheckException("cancel") + ); } if (this._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('cancel')); + return promiseRejectedWith(readerLockException("cancel")); } return ReadableStreamReaderGenericCancel(this, reason); - } - /** - * Attempts to reads bytes into view, and returns a promise resolved with the result. - * - * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source. - */ - read(view) { + } + /** + * Attempts to reads bytes into view, and returns a promise resolved with the result. + * + * If reading a chunk causes the queue to become empty, more data will be pulled from the underlying source. + */ + read(view) { if (!IsReadableStreamBYOBReader(this)) { - return promiseRejectedWith(byobReaderBrandCheckException('read')); + return promiseRejectedWith(byobReaderBrandCheckException("read")); } if (!ArrayBuffer.isView(view)) { - return promiseRejectedWith(new TypeError('view must be an array buffer view')); + return promiseRejectedWith( + new TypeError("view must be an array buffer view") + ); } if (view.byteLength === 0) { - return promiseRejectedWith(new TypeError('view must have non-zero byteLength')); + return promiseRejectedWith( + new TypeError("view must have non-zero byteLength") + ); } if (view.buffer.byteLength === 0) { - return promiseRejectedWith(new TypeError(`view's buffer must have non-zero byteLength`)); + return promiseRejectedWith( + new TypeError(`view's buffer must have non-zero byteLength`) + ); } - if (IsDetachedBuffer(view.buffer)) ; + if (IsDetachedBuffer(view.buffer)); if (this._ownerReadableStream === undefined) { - return promiseRejectedWith(readerLockException('read from')); + return promiseRejectedWith(readerLockException("read from")); } let resolvePromise; let rejectPromise; const promise = newPromise((resolve, reject) => { - resolvePromise = resolve; - rejectPromise = reject; + resolvePromise = resolve; + rejectPromise = reject; }); const readIntoRequest = { - _chunkSteps: chunk => resolvePromise({ value: chunk, done: false }), - _closeSteps: chunk => resolvePromise({ value: chunk, done: true }), - _errorSteps: e => rejectPromise(e) + _chunkSteps: (chunk) => + resolvePromise({ value: chunk, done: false }), + _closeSteps: (chunk) => + resolvePromise({ value: chunk, done: true }), + _errorSteps: (e) => rejectPromise(e), }; ReadableStreamBYOBReaderRead(this, view, readIntoRequest); return promise; - } - /** - * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active. - * If the associated stream is errored when the lock is released, the reader will appear errored in the same way - * from now on; otherwise, the reader will appear closed. - * - * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by - * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to - * do so will throw a `TypeError` and leave the reader locked to the stream. - */ - releaseLock() { + } + /** + * Releases the reader's lock on the corresponding stream. After the lock is released, the reader is no longer active. + * If the associated stream is errored when the lock is released, the reader will appear errored in the same way + * from now on; otherwise, the reader will appear closed. + * + * A reader's lock cannot be released while it still has a pending read request, i.e., if a promise returned by + * the reader's {@link ReadableStreamBYOBReader.read | read()} method has not yet been settled. Attempting to + * do so will throw a `TypeError` and leave the reader locked to the stream. + */ + releaseLock() { if (!IsReadableStreamBYOBReader(this)) { - throw byobReaderBrandCheckException('releaseLock'); + throw byobReaderBrandCheckException("releaseLock"); } if (this._ownerReadableStream === undefined) { - return; + return; } if (this._readIntoRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); + throw new TypeError( + "Tried to release a reader lock when that reader has pending read() calls un-settled" + ); } ReadableStreamReaderGenericRelease(this); + } } - } - Object.defineProperties(ReadableStreamBYOBReader.prototype, { - cancel: { enumerable: true }, - read: { enumerable: true }, - releaseLock: { enumerable: true }, - closed: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(ReadableStreamBYOBReader.prototype, SymbolPolyfill.toStringTag, { - value: 'ReadableStreamBYOBReader', - configurable: true + Object.defineProperties(ReadableStreamBYOBReader.prototype, { + cancel: { enumerable: true }, + read: { enumerable: true }, + releaseLock: { enumerable: true }, + closed: { enumerable: true }, }); - } - // Abstract operations for the readers. - function IsReadableStreamBYOBReader(x) { - if (!typeIsObject(x)) { - return false; + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + ReadableStreamBYOBReader.prototype, + SymbolPolyfill.toStringTag, + { + value: "ReadableStreamBYOBReader", + configurable: true, + } + ); } - if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { + // Abstract operations for the readers. + function IsReadableStreamBYOBReader(x) { + if (!typeIsObject(x)) { return false; + } + if (!Object.prototype.hasOwnProperty.call(x, "_readIntoRequests")) { + return false; + } + return x instanceof ReadableStreamBYOBReader; } - return x instanceof ReadableStreamBYOBReader; - } - function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) { - const stream = reader._ownerReadableStream; - stream._disturbed = true; - if (stream._state === 'errored') { + function ReadableStreamBYOBReaderRead(reader, view, readIntoRequest) { + const stream = reader._ownerReadableStream; + stream._disturbed = true; + if (stream._state === "errored") { readIntoRequest._errorSteps(stream._storedError); + } else { + ReadableByteStreamControllerPullInto( + stream._readableStreamController, + view, + readIntoRequest + ); + } } - else { - ReadableByteStreamControllerPullInto(stream._readableStreamController, view, readIntoRequest); + // Helper functions for the ReadableStreamBYOBReader. + function byobReaderBrandCheckException(name) { + return new TypeError( + `ReadableStreamBYOBReader.prototype.${name} can only be used on a ReadableStreamBYOBReader` + ); } - } - // Helper functions for the ReadableStreamBYOBReader. - function byobReaderBrandCheckException(name) { - return new TypeError(`ReadableStreamBYOBReader.prototype.${name} can only be used on a ReadableStreamBYOBReader`); - } - function ExtractHighWaterMark(strategy, defaultHWM) { - const { highWaterMark } = strategy; - if (highWaterMark === undefined) { + function ExtractHighWaterMark(strategy, defaultHWM) { + const { highWaterMark } = strategy; + if (highWaterMark === undefined) { return defaultHWM; + } + if (NumberIsNaN(highWaterMark) || highWaterMark < 0) { + throw new RangeError("Invalid highWaterMark"); + } + return highWaterMark; } - if (NumberIsNaN(highWaterMark) || highWaterMark < 0) { - throw new RangeError('Invalid highWaterMark'); - } - return highWaterMark; - } - function ExtractSizeAlgorithm(strategy) { - const { size } = strategy; - if (!size) { + function ExtractSizeAlgorithm(strategy) { + const { size } = strategy; + if (!size) { return () => 1; + } + return size; } - return size; - } - function convertQueuingStrategy(init, context) { - assertDictionary(init, context); - const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark; - const size = init === null || init === void 0 ? void 0 : init.size; - return { - highWaterMark: highWaterMark === undefined ? undefined : convertUnrestrictedDouble(highWaterMark), - size: size === undefined ? undefined : convertQueuingStrategySize(size, `${context} has member 'size' that`) - }; - } - function convertQueuingStrategySize(fn, context) { - assertFunction(fn, context); - return chunk => convertUnrestrictedDouble(fn(chunk)); - } + function convertQueuingStrategy(init, context) { + assertDictionary(init, context); + const highWaterMark = + init === null || init === void 0 ? void 0 : init.highWaterMark; + const size = init === null || init === void 0 ? void 0 : init.size; + return { + highWaterMark: + highWaterMark === undefined + ? undefined + : convertUnrestrictedDouble(highWaterMark), + size: + size === undefined + ? undefined + : convertQueuingStrategySize( + size, + `${context} has member 'size' that` + ), + }; + } + function convertQueuingStrategySize(fn, context) { + assertFunction(fn, context); + return (chunk) => convertUnrestrictedDouble(fn(chunk)); + } - function convertUnderlyingSink(original, context) { - assertDictionary(original, context); - const abort = original === null || original === void 0 ? void 0 : original.abort; - const close = original === null || original === void 0 ? void 0 : original.close; - const start = original === null || original === void 0 ? void 0 : original.start; - const type = original === null || original === void 0 ? void 0 : original.type; - const write = original === null || original === void 0 ? void 0 : original.write; - return { - abort: abort === undefined ? - undefined : - convertUnderlyingSinkAbortCallback(abort, original, `${context} has member 'abort' that`), - close: close === undefined ? - undefined : - convertUnderlyingSinkCloseCallback(close, original, `${context} has member 'close' that`), - start: start === undefined ? - undefined : - convertUnderlyingSinkStartCallback(start, original, `${context} has member 'start' that`), - write: write === undefined ? - undefined : - convertUnderlyingSinkWriteCallback(write, original, `${context} has member 'write' that`), - type - }; - } - function convertUnderlyingSinkAbortCallback(fn, original, context) { - assertFunction(fn, context); - return (reason) => promiseCall(fn, original, [reason]); - } - function convertUnderlyingSinkCloseCallback(fn, original, context) { - assertFunction(fn, context); - return () => promiseCall(fn, original, []); - } - function convertUnderlyingSinkStartCallback(fn, original, context) { - assertFunction(fn, context); - return (controller) => reflectCall(fn, original, [controller]); - } - function convertUnderlyingSinkWriteCallback(fn, original, context) { - assertFunction(fn, context); - return (chunk, controller) => promiseCall(fn, original, [chunk, controller]); - } + function convertUnderlyingSink(original, context) { + assertDictionary(original, context); + const abort = + original === null || original === void 0 ? void 0 : original.abort; + const close = + original === null || original === void 0 ? void 0 : original.close; + const start = + original === null || original === void 0 ? void 0 : original.start; + const type = + original === null || original === void 0 ? void 0 : original.type; + const write = + original === null || original === void 0 ? void 0 : original.write; + return { + abort: + abort === undefined + ? undefined + : convertUnderlyingSinkAbortCallback( + abort, + original, + `${context} has member 'abort' that` + ), + close: + close === undefined + ? undefined + : convertUnderlyingSinkCloseCallback( + close, + original, + `${context} has member 'close' that` + ), + start: + start === undefined + ? undefined + : convertUnderlyingSinkStartCallback( + start, + original, + `${context} has member 'start' that` + ), + write: + write === undefined + ? undefined + : convertUnderlyingSinkWriteCallback( + write, + original, + `${context} has member 'write' that` + ), + type, + }; + } + function convertUnderlyingSinkAbortCallback(fn, original, context) { + assertFunction(fn, context); + return (reason) => promiseCall(fn, original, [reason]); + } + function convertUnderlyingSinkCloseCallback(fn, original, context) { + assertFunction(fn, context); + return () => promiseCall(fn, original, []); + } + function convertUnderlyingSinkStartCallback(fn, original, context) { + assertFunction(fn, context); + return (controller) => reflectCall(fn, original, [controller]); + } + function convertUnderlyingSinkWriteCallback(fn, original, context) { + assertFunction(fn, context); + return (chunk, controller) => + promiseCall(fn, original, [chunk, controller]); + } - function assertWritableStream(x, context) { - if (!IsWritableStream(x)) { + function assertWritableStream(x, context) { + if (!IsWritableStream(x)) { throw new TypeError(`${context} is not a WritableStream.`); + } } - } - function isAbortSignal(value) { - if (typeof value !== 'object' || value === null) { + function isAbortSignal(value) { + if (typeof value !== "object" || value === null) { return false; - } - try { - return typeof value.aborted === 'boolean'; - } - catch (_a) { + } + try { + return typeof value.aborted === "boolean"; + } catch (_a) { // AbortSignal.prototype.aborted throws if its brand check fails return false; + } } - } - const supportsAbortController = typeof AbortController === 'function'; - /** - * Construct a new AbortController, if supported by the platform. - * - * @internal - */ - function createAbortController() { - if (supportsAbortController) { + const supportsAbortController = typeof AbortController === "function"; + /** + * Construct a new AbortController, if supported by the platform. + * + * @internal + */ + function createAbortController() { + if (supportsAbortController) { return new AbortController(); + } + return undefined; } - return undefined; - } - /** - * A writable stream represents a destination for data, into which you can write. - * - * @public - */ - class WritableStream { - constructor(rawUnderlyingSink = {}, rawStrategy = {}) { + /** + * A writable stream represents a destination for data, into which you can write. + * + * @public + */ + class WritableStream { + constructor(rawUnderlyingSink = {}, rawStrategy = {}) { if (rawUnderlyingSink === undefined) { - rawUnderlyingSink = null; + rawUnderlyingSink = null; + } else { + assertObject(rawUnderlyingSink, "First parameter"); } - else { - assertObject(rawUnderlyingSink, 'First parameter'); - } - const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter'); - const underlyingSink = convertUnderlyingSink(rawUnderlyingSink, 'First parameter'); + const strategy = convertQueuingStrategy( + rawStrategy, + "Second parameter" + ); + const underlyingSink = convertUnderlyingSink( + rawUnderlyingSink, + "First parameter" + ); InitializeWritableStream(this); const type = underlyingSink.type; if (type !== undefined) { - throw new RangeError('Invalid type is specified'); + throw new RangeError("Invalid type is specified"); } const sizeAlgorithm = ExtractSizeAlgorithm(strategy); const highWaterMark = ExtractHighWaterMark(strategy, 1); - SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm); - } - /** - * Returns whether or not the writable stream is locked to a writer. - */ - get locked() { + SetUpWritableStreamDefaultControllerFromUnderlyingSink( + this, + underlyingSink, + highWaterMark, + sizeAlgorithm + ); + } + /** + * Returns whether or not the writable stream is locked to a writer. + */ + get locked() { if (!IsWritableStream(this)) { - throw streamBrandCheckException$2('locked'); + throw streamBrandCheckException$2("locked"); } return IsWritableStreamLocked(this); - } - /** - * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be - * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort - * mechanism of the underlying sink. - * - * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled - * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel - * the stream) if the stream is currently locked. - */ - abort(reason = undefined) { + } + /** + * Aborts the stream, signaling that the producer can no longer successfully write to the stream and it is to be + * immediately moved to an errored state, with any queued-up writes discarded. This will also execute any abort + * mechanism of the underlying sink. + * + * The returned promise will fulfill if the stream shuts down successfully, or reject if the underlying sink signaled + * that there was an error doing so. Additionally, it will reject with a `TypeError` (without attempting to cancel + * the stream) if the stream is currently locked. + */ + abort(reason = undefined) { if (!IsWritableStream(this)) { - return promiseRejectedWith(streamBrandCheckException$2('abort')); + return promiseRejectedWith(streamBrandCheckException$2("abort")); } if (IsWritableStreamLocked(this)) { - return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer')); + return promiseRejectedWith( + new TypeError("Cannot abort a stream that already has a writer") + ); } return WritableStreamAbort(this, reason); - } - /** - * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its - * close behavior. During this time any further attempts to write will fail (without erroring the stream). - * - * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream - * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with - * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked. - */ - close() { + } + /** + * Closes the stream. The underlying sink will finish processing any previously-written chunks, before invoking its + * close behavior. During this time any further attempts to write will fail (without erroring the stream). + * + * The method returns a promise that will fulfill if all remaining chunks are successfully written and the stream + * successfully closes, or rejects if an error is encountered during this process. Additionally, it will reject with + * a `TypeError` (without attempting to cancel the stream) if the stream is currently locked. + */ + close() { if (!IsWritableStream(this)) { - return promiseRejectedWith(streamBrandCheckException$2('close')); + return promiseRejectedWith(streamBrandCheckException$2("close")); } if (IsWritableStreamLocked(this)) { - return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer')); + return promiseRejectedWith( + new TypeError("Cannot close a stream that already has a writer") + ); } if (WritableStreamCloseQueuedOrInFlight(this)) { - return promiseRejectedWith(new TypeError('Cannot close an already-closing stream')); + return promiseRejectedWith( + new TypeError("Cannot close an already-closing stream") + ); } return WritableStreamClose(this); - } - /** - * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream - * is locked, no other writer can be acquired until this one is released. - * - * This functionality is especially useful for creating abstractions that desire the ability to write to a stream - * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at - * the same time, which would cause the resulting written data to be unpredictable and probably useless. - */ - getWriter() { + } + /** + * Creates a {@link WritableStreamDefaultWriter | writer} and locks the stream to the new writer. While the stream + * is locked, no other writer can be acquired until this one is released. + * + * This functionality is especially useful for creating abstractions that desire the ability to write to a stream + * without interruption or interleaving. By getting a writer for the stream, you can ensure nobody else can write at + * the same time, which would cause the resulting written data to be unpredictable and probably useless. + */ + getWriter() { if (!IsWritableStream(this)) { - throw streamBrandCheckException$2('getWriter'); + throw streamBrandCheckException$2("getWriter"); } return AcquireWritableStreamDefaultWriter(this); + } } - } - Object.defineProperties(WritableStream.prototype, { - abort: { enumerable: true }, - close: { enumerable: true }, - getWriter: { enumerable: true }, - locked: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(WritableStream.prototype, SymbolPolyfill.toStringTag, { - value: 'WritableStream', - configurable: true + Object.defineProperties(WritableStream.prototype, { + abort: { enumerable: true }, + close: { enumerable: true }, + getWriter: { enumerable: true }, + locked: { enumerable: true }, }); - } - // Abstract operations for the WritableStream. - function AcquireWritableStreamDefaultWriter(stream) { - return new WritableStreamDefaultWriter(stream); - } - // Throws if and only if startAlgorithm throws. - function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) { - const stream = Object.create(WritableStream.prototype); - InitializeWritableStream(stream); - const controller = Object.create(WritableStreamDefaultController.prototype); - SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm); - return stream; - } - function InitializeWritableStream(stream) { - stream._state = 'writable'; - // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is - // 'erroring' or 'errored'. May be set to an undefined value. - stream._storedError = undefined; - stream._writer = undefined; - // Initialize to undefined first because the constructor of the controller checks this - // variable to validate the caller. - stream._writableStreamController = undefined; - // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data - // producer without waiting for the queued writes to finish. - stream._writeRequests = new SimpleQueue(); - // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents - // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here. - stream._inFlightWriteRequest = undefined; - // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer - // has been detached. - stream._closeRequest = undefined; - // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it - // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here. - stream._inFlightCloseRequest = undefined; - // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached. - stream._pendingAbortRequest = undefined; - // The backpressure signal set by the controller. - stream._backpressure = false; - } - function IsWritableStream(x) { - if (!typeIsObject(x)) { - return false; + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + WritableStream.prototype, + SymbolPolyfill.toStringTag, + { + value: "WritableStream", + configurable: true, + } + ); } - if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { - return false; + // Abstract operations for the WritableStream. + function AcquireWritableStreamDefaultWriter(stream) { + return new WritableStreamDefaultWriter(stream); } - return x instanceof WritableStream; - } - function IsWritableStreamLocked(stream) { - if (stream._writer === undefined) { - return false; + // Throws if and only if startAlgorithm throws. + function CreateWritableStream( + startAlgorithm, + writeAlgorithm, + closeAlgorithm, + abortAlgorithm, + highWaterMark = 1, + sizeAlgorithm = () => 1 + ) { + const stream = Object.create(WritableStream.prototype); + InitializeWritableStream(stream); + const controller = Object.create( + WritableStreamDefaultController.prototype + ); + SetUpWritableStreamDefaultController( + stream, + controller, + startAlgorithm, + writeAlgorithm, + closeAlgorithm, + abortAlgorithm, + highWaterMark, + sizeAlgorithm + ); + return stream; } - return true; - } - function WritableStreamAbort(stream, reason) { - var _a; - if (stream._state === 'closed' || stream._state === 'errored') { + function InitializeWritableStream(stream) { + stream._state = "writable"; + // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is + // 'erroring' or 'errored'. May be set to an undefined value. + stream._storedError = undefined; + stream._writer = undefined; + // Initialize to undefined first because the constructor of the controller checks this + // variable to validate the caller. + stream._writableStreamController = undefined; + // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data + // producer without waiting for the queued writes to finish. + stream._writeRequests = new SimpleQueue(); + // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents + // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here. + stream._inFlightWriteRequest = undefined; + // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer + // has been detached. + stream._closeRequest = undefined; + // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it + // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here. + stream._inFlightCloseRequest = undefined; + // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached. + stream._pendingAbortRequest = undefined; + // The backpressure signal set by the controller. + stream._backpressure = false; + } + function IsWritableStream(x) { + if (!typeIsObject(x)) { + return false; + } + if ( + !Object.prototype.hasOwnProperty.call( + x, + "_writableStreamController" + ) + ) { + return false; + } + return x instanceof WritableStream; + } + function IsWritableStreamLocked(stream) { + if (stream._writer === undefined) { + return false; + } + return true; + } + function WritableStreamAbort(stream, reason) { + var _a; + if (stream._state === "closed" || stream._state === "errored") { return promiseResolvedWith(undefined); - } - stream._writableStreamController._abortReason = reason; - (_a = stream._writableStreamController._abortController) === null || _a === void 0 ? void 0 : _a.abort(); - // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring', - // but it doesn't know that signaling abort runs author code that might have changed the state. - // Widen the type again by casting to WritableStreamState. - const state = stream._state; - if (state === 'closed' || state === 'errored') { + } + stream._writableStreamController._abortReason = reason; + (_a = stream._writableStreamController._abortController) === null || + _a === void 0 + ? void 0 + : _a.abort(); + // TypeScript narrows the type of `stream._state` down to 'writable' | 'erroring', + // but it doesn't know that signaling abort runs author code that might have changed the state. + // Widen the type again by casting to WritableStreamState. + const state = stream._state; + if (state === "closed" || state === "errored") { return promiseResolvedWith(undefined); - } - if (stream._pendingAbortRequest !== undefined) { + } + if (stream._pendingAbortRequest !== undefined) { return stream._pendingAbortRequest._promise; - } - let wasAlreadyErroring = false; - if (state === 'erroring') { + } + let wasAlreadyErroring = false; + if (state === "erroring") { wasAlreadyErroring = true; // reason will not be used, so don't keep a reference to it. reason = undefined; - } - const promise = newPromise((resolve, reject) => { + } + const promise = newPromise((resolve, reject) => { stream._pendingAbortRequest = { - _promise: undefined, - _resolve: resolve, - _reject: reject, - _reason: reason, - _wasAlreadyErroring: wasAlreadyErroring + _promise: undefined, + _resolve: resolve, + _reject: reject, + _reason: reason, + _wasAlreadyErroring: wasAlreadyErroring, }; - }); - stream._pendingAbortRequest._promise = promise; - if (!wasAlreadyErroring) { + }); + stream._pendingAbortRequest._promise = promise; + if (!wasAlreadyErroring) { WritableStreamStartErroring(stream, reason); + } + return promise; } - return promise; - } - function WritableStreamClose(stream) { - const state = stream._state; - if (state === 'closed' || state === 'errored') { - return promiseRejectedWith(new TypeError(`The stream (in ${state} state) is not in the writable state and cannot be closed`)); - } - const promise = newPromise((resolve, reject) => { + function WritableStreamClose(stream) { + const state = stream._state; + if (state === "closed" || state === "errored") { + return promiseRejectedWith( + new TypeError( + `The stream (in ${state} state) is not in the writable state and cannot be closed` + ) + ); + } + const promise = newPromise((resolve, reject) => { const closeRequest = { - _resolve: resolve, - _reject: reject + _resolve: resolve, + _reject: reject, }; stream._closeRequest = closeRequest; - }); - const writer = stream._writer; - if (writer !== undefined && stream._backpressure && state === 'writable') { + }); + const writer = stream._writer; + if ( + writer !== undefined && + stream._backpressure && + state === "writable" + ) { defaultWriterReadyPromiseResolve(writer); + } + WritableStreamDefaultControllerClose( + stream._writableStreamController + ); + return promise; } - WritableStreamDefaultControllerClose(stream._writableStreamController); - return promise; - } - // WritableStream API exposed for controllers. - function WritableStreamAddWriteRequest(stream) { - const promise = newPromise((resolve, reject) => { + // WritableStream API exposed for controllers. + function WritableStreamAddWriteRequest(stream) { + const promise = newPromise((resolve, reject) => { const writeRequest = { - _resolve: resolve, - _reject: reject + _resolve: resolve, + _reject: reject, }; stream._writeRequests.push(writeRequest); - }); - return promise; - } - function WritableStreamDealWithRejection(stream, error) { - const state = stream._state; - if (state === 'writable') { + }); + return promise; + } + function WritableStreamDealWithRejection(stream, error) { + const state = stream._state; + if (state === "writable") { WritableStreamStartErroring(stream, error); return; + } + WritableStreamFinishErroring(stream); } - WritableStreamFinishErroring(stream); - } - function WritableStreamStartErroring(stream, reason) { - const controller = stream._writableStreamController; - stream._state = 'erroring'; - stream._storedError = reason; - const writer = stream._writer; - if (writer !== undefined) { - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); - } - if (!WritableStreamHasOperationMarkedInFlight(stream) && controller._started) { + function WritableStreamStartErroring(stream, reason) { + const controller = stream._writableStreamController; + stream._state = "erroring"; + stream._storedError = reason; + const writer = stream._writer; + if (writer !== undefined) { + WritableStreamDefaultWriterEnsureReadyPromiseRejected( + writer, + reason + ); + } + if ( + !WritableStreamHasOperationMarkedInFlight(stream) && + controller._started + ) { WritableStreamFinishErroring(stream); + } } - } - function WritableStreamFinishErroring(stream) { - stream._state = 'errored'; - stream._writableStreamController[ErrorSteps](); - const storedError = stream._storedError; - stream._writeRequests.forEach(writeRequest => { + function WritableStreamFinishErroring(stream) { + stream._state = "errored"; + stream._writableStreamController[ErrorSteps](); + const storedError = stream._storedError; + stream._writeRequests.forEach((writeRequest) => { writeRequest._reject(storedError); - }); - stream._writeRequests = new SimpleQueue(); - if (stream._pendingAbortRequest === undefined) { + }); + stream._writeRequests = new SimpleQueue(); + if (stream._pendingAbortRequest === undefined) { WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); return; - } - const abortRequest = stream._pendingAbortRequest; - stream._pendingAbortRequest = undefined; - if (abortRequest._wasAlreadyErroring) { + } + const abortRequest = stream._pendingAbortRequest; + stream._pendingAbortRequest = undefined; + if (abortRequest._wasAlreadyErroring) { abortRequest._reject(storedError); WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); return; + } + const promise = stream._writableStreamController[AbortSteps]( + abortRequest._reason + ); + uponPromise( + promise, + () => { + abortRequest._resolve(); + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + }, + (reason) => { + abortRequest._reject(reason); + WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); + } + ); } - const promise = stream._writableStreamController[AbortSteps](abortRequest._reason); - uponPromise(promise, () => { - abortRequest._resolve(); - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - }, (reason) => { - abortRequest._reject(reason); - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - }); - } - function WritableStreamFinishInFlightWrite(stream) { - stream._inFlightWriteRequest._resolve(undefined); - stream._inFlightWriteRequest = undefined; - } - function WritableStreamFinishInFlightWriteWithError(stream, error) { - stream._inFlightWriteRequest._reject(error); - stream._inFlightWriteRequest = undefined; - WritableStreamDealWithRejection(stream, error); - } - function WritableStreamFinishInFlightClose(stream) { - stream._inFlightCloseRequest._resolve(undefined); - stream._inFlightCloseRequest = undefined; - const state = stream._state; - if (state === 'erroring') { + function WritableStreamFinishInFlightWrite(stream) { + stream._inFlightWriteRequest._resolve(undefined); + stream._inFlightWriteRequest = undefined; + } + function WritableStreamFinishInFlightWriteWithError(stream, error) { + stream._inFlightWriteRequest._reject(error); + stream._inFlightWriteRequest = undefined; + WritableStreamDealWithRejection(stream, error); + } + function WritableStreamFinishInFlightClose(stream) { + stream._inFlightCloseRequest._resolve(undefined); + stream._inFlightCloseRequest = undefined; + const state = stream._state; + if (state === "erroring") { // The error was too late to do anything, so it is ignored. stream._storedError = undefined; if (stream._pendingAbortRequest !== undefined) { - stream._pendingAbortRequest._resolve(); - stream._pendingAbortRequest = undefined; + stream._pendingAbortRequest._resolve(); + stream._pendingAbortRequest = undefined; } - } - stream._state = 'closed'; - const writer = stream._writer; - if (writer !== undefined) { + } + stream._state = "closed"; + const writer = stream._writer; + if (writer !== undefined) { defaultWriterClosedPromiseResolve(writer); + } } - } - function WritableStreamFinishInFlightCloseWithError(stream, error) { - stream._inFlightCloseRequest._reject(error); - stream._inFlightCloseRequest = undefined; - // Never execute sink abort() after sink close(). - if (stream._pendingAbortRequest !== undefined) { + function WritableStreamFinishInFlightCloseWithError(stream, error) { + stream._inFlightCloseRequest._reject(error); + stream._inFlightCloseRequest = undefined; + // Never execute sink abort() after sink close(). + if (stream._pendingAbortRequest !== undefined) { stream._pendingAbortRequest._reject(error); stream._pendingAbortRequest = undefined; + } + WritableStreamDealWithRejection(stream, error); } - WritableStreamDealWithRejection(stream, error); - } - // TODO(ricea): Fix alphabetical order. - function WritableStreamCloseQueuedOrInFlight(stream) { - if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { + // TODO(ricea): Fix alphabetical order. + function WritableStreamCloseQueuedOrInFlight(stream) { + if ( + stream._closeRequest === undefined && + stream._inFlightCloseRequest === undefined + ) { return false; + } + return true; } - return true; - } - function WritableStreamHasOperationMarkedInFlight(stream) { - if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { + function WritableStreamHasOperationMarkedInFlight(stream) { + if ( + stream._inFlightWriteRequest === undefined && + stream._inFlightCloseRequest === undefined + ) { return false; + } + return true; } - return true; - } - function WritableStreamMarkCloseRequestInFlight(stream) { - stream._inFlightCloseRequest = stream._closeRequest; - stream._closeRequest = undefined; - } - function WritableStreamMarkFirstWriteRequestInFlight(stream) { - stream._inFlightWriteRequest = stream._writeRequests.shift(); - } - function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { - if (stream._closeRequest !== undefined) { + function WritableStreamMarkCloseRequestInFlight(stream) { + stream._inFlightCloseRequest = stream._closeRequest; + stream._closeRequest = undefined; + } + function WritableStreamMarkFirstWriteRequestInFlight(stream) { + stream._inFlightWriteRequest = stream._writeRequests.shift(); + } + function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { + if (stream._closeRequest !== undefined) { stream._closeRequest._reject(stream._storedError); stream._closeRequest = undefined; - } - const writer = stream._writer; - if (writer !== undefined) { + } + const writer = stream._writer; + if (writer !== undefined) { defaultWriterClosedPromiseReject(writer, stream._storedError); + } } - } - function WritableStreamUpdateBackpressure(stream, backpressure) { - const writer = stream._writer; - if (writer !== undefined && backpressure !== stream._backpressure) { + function WritableStreamUpdateBackpressure(stream, backpressure) { + const writer = stream._writer; + if (writer !== undefined && backpressure !== stream._backpressure) { if (backpressure) { - defaultWriterReadyPromiseReset(writer); - } - else { - defaultWriterReadyPromiseResolve(writer); + defaultWriterReadyPromiseReset(writer); + } else { + defaultWriterReadyPromiseResolve(writer); } + } + stream._backpressure = backpressure; } - stream._backpressure = backpressure; - } - /** - * A default writer vended by a {@link WritableStream}. - * - * @public - */ - class WritableStreamDefaultWriter { - constructor(stream) { - assertRequiredArgument(stream, 1, 'WritableStreamDefaultWriter'); - assertWritableStream(stream, 'First parameter'); + /** + * A default writer vended by a {@link WritableStream}. + * + * @public + */ + class WritableStreamDefaultWriter { + constructor(stream) { + assertRequiredArgument(stream, 1, "WritableStreamDefaultWriter"); + assertWritableStream(stream, "First parameter"); if (IsWritableStreamLocked(stream)) { - throw new TypeError('This stream has already been locked for exclusive writing by another writer'); + throw new TypeError( + "This stream has already been locked for exclusive writing by another writer" + ); } this._ownerWritableStream = stream; stream._writer = this; const state = stream._state; - if (state === 'writable') { - if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._backpressure) { - defaultWriterReadyPromiseInitialize(this); - } - else { - defaultWriterReadyPromiseInitializeAsResolved(this); - } - defaultWriterClosedPromiseInitialize(this); - } - else if (state === 'erroring') { - defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); - defaultWriterClosedPromiseInitialize(this); - } - else if (state === 'closed') { + if (state === "writable") { + if ( + !WritableStreamCloseQueuedOrInFlight(stream) && + stream._backpressure + ) { + defaultWriterReadyPromiseInitialize(this); + } else { defaultWriterReadyPromiseInitializeAsResolved(this); - defaultWriterClosedPromiseInitializeAsResolved(this); + } + defaultWriterClosedPromiseInitialize(this); + } else if (state === "erroring") { + defaultWriterReadyPromiseInitializeAsRejected( + this, + stream._storedError + ); + defaultWriterClosedPromiseInitialize(this); + } else if (state === "closed") { + defaultWriterReadyPromiseInitializeAsResolved(this); + defaultWriterClosedPromiseInitializeAsResolved(this); + } else { + const storedError = stream._storedError; + defaultWriterReadyPromiseInitializeAsRejected(this, storedError); + defaultWriterClosedPromiseInitializeAsRejected(this, storedError); } - else { - const storedError = stream._storedError; - defaultWriterReadyPromiseInitializeAsRejected(this, storedError); - defaultWriterClosedPromiseInitializeAsRejected(this, storedError); - } - } - /** - * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or - * the writer’s lock is released before the stream finishes closing. - */ - get closed() { + } + /** + * Returns a promise that will be fulfilled when the stream becomes closed, or rejected if the stream ever errors or + * the writer’s lock is released before the stream finishes closing. + */ + get closed() { if (!IsWritableStreamDefaultWriter(this)) { - return promiseRejectedWith(defaultWriterBrandCheckException('closed')); + return promiseRejectedWith( + defaultWriterBrandCheckException("closed") + ); } return this._closedPromise; - } - /** - * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full. - * A producer can use this information to determine the right amount of data to write. - * - * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort - * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when - * the writer’s lock is released. - */ - get desiredSize() { + } + /** + * Returns the desired size to fill the stream’s internal queue. It can be negative, if the queue is over-full. + * A producer can use this information to determine the right amount of data to write. + * + * It will be `null` if the stream cannot be successfully written to (due to either being errored, or having an abort + * queued up). It will return zero if the stream is closed. And the getter will throw an exception if invoked when + * the writer’s lock is released. + */ + get desiredSize() { if (!IsWritableStreamDefaultWriter(this)) { - throw defaultWriterBrandCheckException('desiredSize'); + throw defaultWriterBrandCheckException("desiredSize"); } if (this._ownerWritableStream === undefined) { - throw defaultWriterLockException('desiredSize'); + throw defaultWriterLockException("desiredSize"); } return WritableStreamDefaultWriterGetDesiredSize(this); - } - /** - * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions - * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips - * back to zero or below, the getter will return a new promise that stays pending until the next transition. - * - * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become - * rejected. - */ - get ready() { + } + /** + * Returns a promise that will be fulfilled when the desired size to fill the stream’s internal queue transitions + * from non-positive to positive, signaling that it is no longer applying backpressure. Once the desired size dips + * back to zero or below, the getter will return a new promise that stays pending until the next transition. + * + * If the stream becomes errored or aborted, or the writer’s lock is released, the returned promise will become + * rejected. + */ + get ready() { if (!IsWritableStreamDefaultWriter(this)) { - return promiseRejectedWith(defaultWriterBrandCheckException('ready')); + return promiseRejectedWith( + defaultWriterBrandCheckException("ready") + ); } return this._readyPromise; - } - /** - * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}. - */ - abort(reason = undefined) { + } + /** + * If the reader is active, behaves the same as {@link WritableStream.abort | stream.abort(reason)}. + */ + abort(reason = undefined) { if (!IsWritableStreamDefaultWriter(this)) { - return promiseRejectedWith(defaultWriterBrandCheckException('abort')); + return promiseRejectedWith( + defaultWriterBrandCheckException("abort") + ); } if (this._ownerWritableStream === undefined) { - return promiseRejectedWith(defaultWriterLockException('abort')); + return promiseRejectedWith(defaultWriterLockException("abort")); } return WritableStreamDefaultWriterAbort(this, reason); - } - /** - * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}. - */ - close() { + } + /** + * If the reader is active, behaves the same as {@link WritableStream.close | stream.close()}. + */ + close() { if (!IsWritableStreamDefaultWriter(this)) { - return promiseRejectedWith(defaultWriterBrandCheckException('close')); + return promiseRejectedWith( + defaultWriterBrandCheckException("close") + ); } const stream = this._ownerWritableStream; if (stream === undefined) { - return promiseRejectedWith(defaultWriterLockException('close')); + return promiseRejectedWith(defaultWriterLockException("close")); } if (WritableStreamCloseQueuedOrInFlight(stream)) { - return promiseRejectedWith(new TypeError('Cannot close an already-closing stream')); + return promiseRejectedWith( + new TypeError("Cannot close an already-closing stream") + ); } return WritableStreamDefaultWriterClose(this); - } - /** - * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active. - * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from - * now on; otherwise, the writer will appear closed. - * - * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the - * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled). - * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents - * other producers from writing in an interleaved manner. - */ - releaseLock() { + } + /** + * Releases the writer’s lock on the corresponding stream. After the lock is released, the writer is no longer active. + * If the associated stream is errored when the lock is released, the writer will appear errored in the same way from + * now on; otherwise, the writer will appear closed. + * + * Note that the lock can still be released even if some ongoing writes have not yet finished (i.e. even if the + * promises returned from previous calls to {@link WritableStreamDefaultWriter.write | write()} have not yet settled). + * It’s not necessary to hold the lock on the writer for the duration of the write; the lock instead simply prevents + * other producers from writing in an interleaved manner. + */ + releaseLock() { if (!IsWritableStreamDefaultWriter(this)) { - throw defaultWriterBrandCheckException('releaseLock'); + throw defaultWriterBrandCheckException("releaseLock"); } const stream = this._ownerWritableStream; if (stream === undefined) { - return; + return; } WritableStreamDefaultWriterRelease(this); - } - write(chunk = undefined) { + } + write(chunk = undefined) { if (!IsWritableStreamDefaultWriter(this)) { - return promiseRejectedWith(defaultWriterBrandCheckException('write')); + return promiseRejectedWith( + defaultWriterBrandCheckException("write") + ); } if (this._ownerWritableStream === undefined) { - return promiseRejectedWith(defaultWriterLockException('write to')); + return promiseRejectedWith( + defaultWriterLockException("write to") + ); } return WritableStreamDefaultWriterWrite(this, chunk); + } } - } - Object.defineProperties(WritableStreamDefaultWriter.prototype, { - abort: { enumerable: true }, - close: { enumerable: true }, - releaseLock: { enumerable: true }, - write: { enumerable: true }, - closed: { enumerable: true }, - desiredSize: { enumerable: true }, - ready: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(WritableStreamDefaultWriter.prototype, SymbolPolyfill.toStringTag, { - value: 'WritableStreamDefaultWriter', - configurable: true + Object.defineProperties(WritableStreamDefaultWriter.prototype, { + abort: { enumerable: true }, + close: { enumerable: true }, + releaseLock: { enumerable: true }, + write: { enumerable: true }, + closed: { enumerable: true }, + desiredSize: { enumerable: true }, + ready: { enumerable: true }, }); - } - // Abstract operations for the WritableStreamDefaultWriter. - function IsWritableStreamDefaultWriter(x) { - if (!typeIsObject(x)) { - return false; + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + WritableStreamDefaultWriter.prototype, + SymbolPolyfill.toStringTag, + { + value: "WritableStreamDefaultWriter", + configurable: true, + } + ); } - if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { + // Abstract operations for the WritableStreamDefaultWriter. + function IsWritableStreamDefaultWriter(x) { + if (!typeIsObject(x)) { return false; + } + if ( + !Object.prototype.hasOwnProperty.call(x, "_ownerWritableStream") + ) { + return false; + } + return x instanceof WritableStreamDefaultWriter; } - return x instanceof WritableStreamDefaultWriter; - } - // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check. - function WritableStreamDefaultWriterAbort(writer, reason) { - const stream = writer._ownerWritableStream; - return WritableStreamAbort(stream, reason); - } - function WritableStreamDefaultWriterClose(writer) { - const stream = writer._ownerWritableStream; - return WritableStreamClose(stream); - } - function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { - const stream = writer._ownerWritableStream; - const state = stream._state; - if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') { + // A client of WritableStreamDefaultWriter may use these functions directly to bypass state check. + function WritableStreamDefaultWriterAbort(writer, reason) { + const stream = writer._ownerWritableStream; + return WritableStreamAbort(stream, reason); + } + function WritableStreamDefaultWriterClose(writer) { + const stream = writer._ownerWritableStream; + return WritableStreamClose(stream); + } + function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { + const stream = writer._ownerWritableStream; + const state = stream._state; + if ( + WritableStreamCloseQueuedOrInFlight(stream) || + state === "closed" + ) { return promiseResolvedWith(undefined); - } - if (state === 'errored') { + } + if (state === "errored") { return promiseRejectedWith(stream._storedError); + } + return WritableStreamDefaultWriterClose(writer); } - return WritableStreamDefaultWriterClose(writer); - } - function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { - if (writer._closedPromiseState === 'pending') { + function WritableStreamDefaultWriterEnsureClosedPromiseRejected( + writer, + error + ) { + if (writer._closedPromiseState === "pending") { defaultWriterClosedPromiseReject(writer, error); - } - else { + } else { defaultWriterClosedPromiseResetToRejected(writer, error); + } } - } - function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { - if (writer._readyPromiseState === 'pending') { + function WritableStreamDefaultWriterEnsureReadyPromiseRejected( + writer, + error + ) { + if (writer._readyPromiseState === "pending") { defaultWriterReadyPromiseReject(writer, error); - } - else { + } else { defaultWriterReadyPromiseResetToRejected(writer, error); + } } - } - function WritableStreamDefaultWriterGetDesiredSize(writer) { - const stream = writer._ownerWritableStream; - const state = stream._state; - if (state === 'errored' || state === 'erroring') { + function WritableStreamDefaultWriterGetDesiredSize(writer) { + const stream = writer._ownerWritableStream; + const state = stream._state; + if (state === "errored" || state === "erroring") { return null; - } - if (state === 'closed') { + } + if (state === "closed") { return 0; + } + return WritableStreamDefaultControllerGetDesiredSize( + stream._writableStreamController + ); } - return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); - } - function WritableStreamDefaultWriterRelease(writer) { - const stream = writer._ownerWritableStream; - const releasedError = new TypeError(`Writer was released and can no longer be used to monitor the stream's closedness`); - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); - // The state transitions to "errored" before the sink abort() method runs, but the writer.closed promise is not - // rejected until afterwards. This means that simply testing state will not work. - WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); - stream._writer = undefined; - writer._ownerWritableStream = undefined; - } - function WritableStreamDefaultWriterWrite(writer, chunk) { - const stream = writer._ownerWritableStream; - const controller = stream._writableStreamController; - const chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); - if (stream !== writer._ownerWritableStream) { - return promiseRejectedWith(defaultWriterLockException('write to')); + function WritableStreamDefaultWriterRelease(writer) { + const stream = writer._ownerWritableStream; + const releasedError = new TypeError( + `Writer was released and can no longer be used to monitor the stream's closedness` + ); + WritableStreamDefaultWriterEnsureReadyPromiseRejected( + writer, + releasedError + ); + // The state transitions to "errored" before the sink abort() method runs, but the writer.closed promise is not + // rejected until afterwards. This means that simply testing state will not work. + WritableStreamDefaultWriterEnsureClosedPromiseRejected( + writer, + releasedError + ); + stream._writer = undefined; + writer._ownerWritableStream = undefined; } - const state = stream._state; - if (state === 'errored') { + function WritableStreamDefaultWriterWrite(writer, chunk) { + const stream = writer._ownerWritableStream; + const controller = stream._writableStreamController; + const chunkSize = WritableStreamDefaultControllerGetChunkSize( + controller, + chunk + ); + if (stream !== writer._ownerWritableStream) { + return promiseRejectedWith(defaultWriterLockException("write to")); + } + const state = stream._state; + if (state === "errored") { return promiseRejectedWith(stream._storedError); - } - if (WritableStreamCloseQueuedOrInFlight(stream) || state === 'closed') { - return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to')); - } - if (state === 'erroring') { + } + if ( + WritableStreamCloseQueuedOrInFlight(stream) || + state === "closed" + ) { + return promiseRejectedWith( + new TypeError( + "The stream is closing or closed and cannot be written to" + ) + ); + } + if (state === "erroring") { return promiseRejectedWith(stream._storedError); + } + const promise = WritableStreamAddWriteRequest(stream); + WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); + return promise; } - const promise = WritableStreamAddWriteRequest(stream); - WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); - return promise; - } - const closeSentinel = {}; - /** - * Allows control of a {@link WritableStream | writable stream}'s state and internal queue. - * - * @public - */ - class WritableStreamDefaultController { - constructor() { - throw new TypeError('Illegal constructor'); - } + const closeSentinel = {}; /** - * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted. + * Allows control of a {@link WritableStream | writable stream}'s state and internal queue. * - * @deprecated - * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177. - * Use {@link WritableStreamDefaultController.signal}'s `reason` instead. + * @public */ - get abortReason() { + class WritableStreamDefaultController { + constructor() { + throw new TypeError("Illegal constructor"); + } + /** + * The reason which was passed to `WritableStream.abort(reason)` when the stream was aborted. + * + * @deprecated + * This property has been removed from the specification, see https://github.com/whatwg/streams/pull/1177. + * Use {@link WritableStreamDefaultController.signal}'s `reason` instead. + */ + get abortReason() { if (!IsWritableStreamDefaultController(this)) { - throw defaultControllerBrandCheckException$2('abortReason'); + throw defaultControllerBrandCheckException$2("abortReason"); } return this._abortReason; - } - /** - * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted. - */ - get signal() { + } + /** + * An `AbortSignal` that can be used to abort the pending write or close operation when the stream is aborted. + */ + get signal() { if (!IsWritableStreamDefaultController(this)) { - throw defaultControllerBrandCheckException$2('signal'); + throw defaultControllerBrandCheckException$2("signal"); } if (this._abortController === undefined) { - // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`. - // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill, - // so instead we only implement support for `signal` if we find a global `AbortController` constructor. - throw new TypeError('WritableStreamDefaultController.prototype.signal is not supported'); + // Older browsers or older Node versions may not support `AbortController` or `AbortSignal`. + // We don't want to bundle and ship an `AbortController` polyfill together with our polyfill, + // so instead we only implement support for `signal` if we find a global `AbortController` constructor. + throw new TypeError( + "WritableStreamDefaultController.prototype.signal is not supported" + ); } return this._abortController.signal; - } - /** - * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`. - * - * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying - * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the - * normal lifecycle of interactions with the underlying sink. - */ - error(e = undefined) { + } + /** + * Closes the controlled writable stream, making all future interactions with it fail with the given error `e`. + * + * This method is rarely used, since usually it suffices to return a rejected promise from one of the underlying + * sink's methods. However, it can be useful for suddenly shutting down a stream in response to an event outside the + * normal lifecycle of interactions with the underlying sink. + */ + error(e = undefined) { if (!IsWritableStreamDefaultController(this)) { - throw defaultControllerBrandCheckException$2('error'); + throw defaultControllerBrandCheckException$2("error"); } const state = this._controlledWritableStream._state; - if (state !== 'writable') { - // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so - // just treat it as a no-op. - return; + if (state !== "writable") { + // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so + // just treat it as a no-op. + return; } WritableStreamDefaultControllerError(this, e); - } - /** @internal */ - [AbortSteps](reason) { + } + /** @internal */ + [AbortSteps](reason) { const result = this._abortAlgorithm(reason); WritableStreamDefaultControllerClearAlgorithms(this); return result; - } - /** @internal */ - [ErrorSteps]() { + } + /** @internal */ + [ErrorSteps]() { ResetQueue(this); + } } - } - Object.defineProperties(WritableStreamDefaultController.prototype, { - abortReason: { enumerable: true }, - signal: { enumerable: true }, - error: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(WritableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, { - value: 'WritableStreamDefaultController', - configurable: true + Object.defineProperties(WritableStreamDefaultController.prototype, { + abortReason: { enumerable: true }, + signal: { enumerable: true }, + error: { enumerable: true }, }); - } - // Abstract operations implementing interface required by the WritableStream. - function IsWritableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + WritableStreamDefaultController.prototype, + SymbolPolyfill.toStringTag, + { + value: "WritableStreamDefaultController", + configurable: true, + } + ); } - if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) { + // Abstract operations implementing interface required by the WritableStream. + function IsWritableStreamDefaultController(x) { + if (!typeIsObject(x)) { return false; + } + if ( + !Object.prototype.hasOwnProperty.call( + x, + "_controlledWritableStream" + ) + ) { + return false; + } + return x instanceof WritableStreamDefaultController; } - return x instanceof WritableStreamDefaultController; - } - function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) { - controller._controlledWritableStream = stream; - stream._writableStreamController = controller; - // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly. - controller._queue = undefined; - controller._queueTotalSize = undefined; - ResetQueue(controller); - controller._abortReason = undefined; - controller._abortController = createAbortController(); - controller._started = false; - controller._strategySizeAlgorithm = sizeAlgorithm; - controller._strategyHWM = highWaterMark; - controller._writeAlgorithm = writeAlgorithm; - controller._closeAlgorithm = closeAlgorithm; - controller._abortAlgorithm = abortAlgorithm; - const backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); - const startResult = startAlgorithm(); - const startPromise = promiseResolvedWith(startResult); - uponPromise(startPromise, () => { - controller._started = true; - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - }, r => { - controller._started = true; - WritableStreamDealWithRejection(stream, r); - }); - } - function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) { - const controller = Object.create(WritableStreamDefaultController.prototype); - let startAlgorithm = () => undefined; - let writeAlgorithm = () => promiseResolvedWith(undefined); - let closeAlgorithm = () => promiseResolvedWith(undefined); - let abortAlgorithm = () => promiseResolvedWith(undefined); - if (underlyingSink.start !== undefined) { + function SetUpWritableStreamDefaultController( + stream, + controller, + startAlgorithm, + writeAlgorithm, + closeAlgorithm, + abortAlgorithm, + highWaterMark, + sizeAlgorithm + ) { + controller._controlledWritableStream = stream; + stream._writableStreamController = controller; + // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly. + controller._queue = undefined; + controller._queueTotalSize = undefined; + ResetQueue(controller); + controller._abortReason = undefined; + controller._abortController = createAbortController(); + controller._started = false; + controller._strategySizeAlgorithm = sizeAlgorithm; + controller._strategyHWM = highWaterMark; + controller._writeAlgorithm = writeAlgorithm; + controller._closeAlgorithm = closeAlgorithm; + controller._abortAlgorithm = abortAlgorithm; + const backpressure = + WritableStreamDefaultControllerGetBackpressure(controller); + WritableStreamUpdateBackpressure(stream, backpressure); + const startResult = startAlgorithm(); + const startPromise = promiseResolvedWith(startResult); + uponPromise( + startPromise, + () => { + controller._started = true; + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + }, + (r) => { + controller._started = true; + WritableStreamDealWithRejection(stream, r); + } + ); + } + function SetUpWritableStreamDefaultControllerFromUnderlyingSink( + stream, + underlyingSink, + highWaterMark, + sizeAlgorithm + ) { + const controller = Object.create( + WritableStreamDefaultController.prototype + ); + let startAlgorithm = () => undefined; + let writeAlgorithm = () => promiseResolvedWith(undefined); + let closeAlgorithm = () => promiseResolvedWith(undefined); + let abortAlgorithm = () => promiseResolvedWith(undefined); + if (underlyingSink.start !== undefined) { startAlgorithm = () => underlyingSink.start(controller); - } - if (underlyingSink.write !== undefined) { - writeAlgorithm = chunk => underlyingSink.write(chunk, controller); - } - if (underlyingSink.close !== undefined) { + } + if (underlyingSink.write !== undefined) { + writeAlgorithm = (chunk) => underlyingSink.write(chunk, controller); + } + if (underlyingSink.close !== undefined) { closeAlgorithm = () => underlyingSink.close(); + } + if (underlyingSink.abort !== undefined) { + abortAlgorithm = (reason) => underlyingSink.abort(reason); + } + SetUpWritableStreamDefaultController( + stream, + controller, + startAlgorithm, + writeAlgorithm, + closeAlgorithm, + abortAlgorithm, + highWaterMark, + sizeAlgorithm + ); } - if (underlyingSink.abort !== undefined) { - abortAlgorithm = reason => underlyingSink.abort(reason); + // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls. + function WritableStreamDefaultControllerClearAlgorithms(controller) { + controller._writeAlgorithm = undefined; + controller._closeAlgorithm = undefined; + controller._abortAlgorithm = undefined; + controller._strategySizeAlgorithm = undefined; } - SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm); - } - // ClearAlgorithms may be called twice. Erroring the same stream in multiple ways will often result in redundant calls. - function WritableStreamDefaultControllerClearAlgorithms(controller) { - controller._writeAlgorithm = undefined; - controller._closeAlgorithm = undefined; - controller._abortAlgorithm = undefined; - controller._strategySizeAlgorithm = undefined; - } - function WritableStreamDefaultControllerClose(controller) { - EnqueueValueWithSize(controller, closeSentinel, 0); - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { - try { + function WritableStreamDefaultControllerClose(controller) { + EnqueueValueWithSize(controller, closeSentinel, 0); + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + } + function WritableStreamDefaultControllerGetChunkSize( + controller, + chunk + ) { + try { return controller._strategySizeAlgorithm(chunk); - } - catch (chunkSizeE) { - WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); + } catch (chunkSizeE) { + WritableStreamDefaultControllerErrorIfNeeded( + controller, + chunkSizeE + ); return 1; + } } - } - function WritableStreamDefaultControllerGetDesiredSize(controller) { - return controller._strategyHWM - controller._queueTotalSize; - } - function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { - try { + function WritableStreamDefaultControllerGetDesiredSize(controller) { + return controller._strategyHWM - controller._queueTotalSize; + } + function WritableStreamDefaultControllerWrite( + controller, + chunk, + chunkSize + ) { + try { EnqueueValueWithSize(controller, chunk, chunkSize); - } - catch (enqueueE) { + } catch (enqueueE) { WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); return; - } - const stream = controller._controlledWritableStream; - if (!WritableStreamCloseQueuedOrInFlight(stream) && stream._state === 'writable') { - const backpressure = WritableStreamDefaultControllerGetBackpressure(controller); + } + const stream = controller._controlledWritableStream; + if ( + !WritableStreamCloseQueuedOrInFlight(stream) && + stream._state === "writable" + ) { + const backpressure = + WritableStreamDefaultControllerGetBackpressure(controller); WritableStreamUpdateBackpressure(stream, backpressure); + } + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); } - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - // Abstract operations for the WritableStreamDefaultController. - function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { - const stream = controller._controlledWritableStream; - if (!controller._started) { + // Abstract operations for the WritableStreamDefaultController. + function WritableStreamDefaultControllerAdvanceQueueIfNeeded( + controller + ) { + const stream = controller._controlledWritableStream; + if (!controller._started) { return; - } - if (stream._inFlightWriteRequest !== undefined) { + } + if (stream._inFlightWriteRequest !== undefined) { return; - } - const state = stream._state; - if (state === 'erroring') { + } + const state = stream._state; + if (state === "erroring") { WritableStreamFinishErroring(stream); return; - } - if (controller._queue.length === 0) { + } + if (controller._queue.length === 0) { return; - } - const value = PeekQueueValue(controller); - if (value === closeSentinel) { + } + const value = PeekQueueValue(controller); + if (value === closeSentinel) { WritableStreamDefaultControllerProcessClose(controller); - } - else { + } else { WritableStreamDefaultControllerProcessWrite(controller, value); + } } - } - function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { - if (controller._controlledWritableStream._state === 'writable') { + function WritableStreamDefaultControllerErrorIfNeeded( + controller, + error + ) { + if (controller._controlledWritableStream._state === "writable") { WritableStreamDefaultControllerError(controller, error); + } } - } - function WritableStreamDefaultControllerProcessClose(controller) { - const stream = controller._controlledWritableStream; - WritableStreamMarkCloseRequestInFlight(stream); - DequeueValue(controller); - const sinkClosePromise = controller._closeAlgorithm(); - WritableStreamDefaultControllerClearAlgorithms(controller); - uponPromise(sinkClosePromise, () => { - WritableStreamFinishInFlightClose(stream); - }, reason => { - WritableStreamFinishInFlightCloseWithError(stream, reason); - }); - } - function WritableStreamDefaultControllerProcessWrite(controller, chunk) { - const stream = controller._controlledWritableStream; - WritableStreamMarkFirstWriteRequestInFlight(stream); - const sinkWritePromise = controller._writeAlgorithm(chunk); - uponPromise(sinkWritePromise, () => { - WritableStreamFinishInFlightWrite(stream); - const state = stream._state; - DequeueValue(controller); - if (!WritableStreamCloseQueuedOrInFlight(stream) && state === 'writable') { - const backpressure = WritableStreamDefaultControllerGetBackpressure(controller); + function WritableStreamDefaultControllerProcessClose(controller) { + const stream = controller._controlledWritableStream; + WritableStreamMarkCloseRequestInFlight(stream); + DequeueValue(controller); + const sinkClosePromise = controller._closeAlgorithm(); + WritableStreamDefaultControllerClearAlgorithms(controller); + uponPromise( + sinkClosePromise, + () => { + WritableStreamFinishInFlightClose(stream); + }, + (reason) => { + WritableStreamFinishInFlightCloseWithError(stream, reason); + } + ); + } + function WritableStreamDefaultControllerProcessWrite( + controller, + chunk + ) { + const stream = controller._controlledWritableStream; + WritableStreamMarkFirstWriteRequestInFlight(stream); + const sinkWritePromise = controller._writeAlgorithm(chunk); + uponPromise( + sinkWritePromise, + () => { + WritableStreamFinishInFlightWrite(stream); + const state = stream._state; + DequeueValue(controller); + if ( + !WritableStreamCloseQueuedOrInFlight(stream) && + state === "writable" + ) { + const backpressure = + WritableStreamDefaultControllerGetBackpressure(controller); WritableStreamUpdateBackpressure(stream, backpressure); - } - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - }, reason => { - if (stream._state === 'writable') { + } + WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); + }, + (reason) => { + if (stream._state === "writable") { WritableStreamDefaultControllerClearAlgorithms(controller); + } + WritableStreamFinishInFlightWriteWithError(stream, reason); } - WritableStreamFinishInFlightWriteWithError(stream, reason); - }); - } - function WritableStreamDefaultControllerGetBackpressure(controller) { - const desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); - return desiredSize <= 0; - } - // A client of WritableStreamDefaultController may use these functions directly to bypass state check. - function WritableStreamDefaultControllerError(controller, error) { - const stream = controller._controlledWritableStream; - WritableStreamDefaultControllerClearAlgorithms(controller); - WritableStreamStartErroring(stream, error); - } - // Helper functions for the WritableStream. - function streamBrandCheckException$2(name) { - return new TypeError(`WritableStream.prototype.${name} can only be used on a WritableStream`); - } - // Helper functions for the WritableStreamDefaultController. - function defaultControllerBrandCheckException$2(name) { - return new TypeError(`WritableStreamDefaultController.prototype.${name} can only be used on a WritableStreamDefaultController`); - } - // Helper functions for the WritableStreamDefaultWriter. - function defaultWriterBrandCheckException(name) { - return new TypeError(`WritableStreamDefaultWriter.prototype.${name} can only be used on a WritableStreamDefaultWriter`); - } - function defaultWriterLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released writer'); - } - function defaultWriterClosedPromiseInitialize(writer) { - writer._closedPromise = newPromise((resolve, reject) => { + ); + } + function WritableStreamDefaultControllerGetBackpressure(controller) { + const desiredSize = + WritableStreamDefaultControllerGetDesiredSize(controller); + return desiredSize <= 0; + } + // A client of WritableStreamDefaultController may use these functions directly to bypass state check. + function WritableStreamDefaultControllerError(controller, error) { + const stream = controller._controlledWritableStream; + WritableStreamDefaultControllerClearAlgorithms(controller); + WritableStreamStartErroring(stream, error); + } + // Helper functions for the WritableStream. + function streamBrandCheckException$2(name) { + return new TypeError( + `WritableStream.prototype.${name} can only be used on a WritableStream` + ); + } + // Helper functions for the WritableStreamDefaultController. + function defaultControllerBrandCheckException$2(name) { + return new TypeError( + `WritableStreamDefaultController.prototype.${name} can only be used on a WritableStreamDefaultController` + ); + } + // Helper functions for the WritableStreamDefaultWriter. + function defaultWriterBrandCheckException(name) { + return new TypeError( + `WritableStreamDefaultWriter.prototype.${name} can only be used on a WritableStreamDefaultWriter` + ); + } + function defaultWriterLockException(name) { + return new TypeError( + "Cannot " + name + " a stream using a released writer" + ); + } + function defaultWriterClosedPromiseInitialize(writer) { + writer._closedPromise = newPromise((resolve, reject) => { writer._closedPromise_resolve = resolve; writer._closedPromise_reject = reject; - writer._closedPromiseState = 'pending'; - }); - } - function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { - defaultWriterClosedPromiseInitialize(writer); - defaultWriterClosedPromiseReject(writer, reason); - } - function defaultWriterClosedPromiseInitializeAsResolved(writer) { - defaultWriterClosedPromiseInitialize(writer); - defaultWriterClosedPromiseResolve(writer); - } - function defaultWriterClosedPromiseReject(writer, reason) { - if (writer._closedPromise_reject === undefined) { - return; + writer._closedPromiseState = "pending"; + }); } - setPromiseIsHandledToTrue(writer._closedPromise); - writer._closedPromise_reject(reason); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'rejected'; - } - function defaultWriterClosedPromiseResetToRejected(writer, reason) { - defaultWriterClosedPromiseInitializeAsRejected(writer, reason); - } - function defaultWriterClosedPromiseResolve(writer) { - if (writer._closedPromise_resolve === undefined) { - return; + function defaultWriterClosedPromiseInitializeAsRejected( + writer, + reason + ) { + defaultWriterClosedPromiseInitialize(writer); + defaultWriterClosedPromiseReject(writer, reason); } - writer._closedPromise_resolve(undefined); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'resolved'; - } - function defaultWriterReadyPromiseInitialize(writer) { - writer._readyPromise = newPromise((resolve, reject) => { + function defaultWriterClosedPromiseInitializeAsResolved(writer) { + defaultWriterClosedPromiseInitialize(writer); + defaultWriterClosedPromiseResolve(writer); + } + function defaultWriterClosedPromiseReject(writer, reason) { + if (writer._closedPromise_reject === undefined) { + return; + } + setPromiseIsHandledToTrue(writer._closedPromise); + writer._closedPromise_reject(reason); + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = "rejected"; + } + function defaultWriterClosedPromiseResetToRejected(writer, reason) { + defaultWriterClosedPromiseInitializeAsRejected(writer, reason); + } + function defaultWriterClosedPromiseResolve(writer) { + if (writer._closedPromise_resolve === undefined) { + return; + } + writer._closedPromise_resolve(undefined); + writer._closedPromise_resolve = undefined; + writer._closedPromise_reject = undefined; + writer._closedPromiseState = "resolved"; + } + function defaultWriterReadyPromiseInitialize(writer) { + writer._readyPromise = newPromise((resolve, reject) => { writer._readyPromise_resolve = resolve; writer._readyPromise_reject = reject; - }); - writer._readyPromiseState = 'pending'; - } - function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { - defaultWriterReadyPromiseInitialize(writer); - defaultWriterReadyPromiseReject(writer, reason); - } - function defaultWriterReadyPromiseInitializeAsResolved(writer) { - defaultWriterReadyPromiseInitialize(writer); - defaultWriterReadyPromiseResolve(writer); - } - function defaultWriterReadyPromiseReject(writer, reason) { - if (writer._readyPromise_reject === undefined) { - return; + }); + writer._readyPromiseState = "pending"; } - setPromiseIsHandledToTrue(writer._readyPromise); - writer._readyPromise_reject(reason); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'rejected'; - } - function defaultWriterReadyPromiseReset(writer) { - defaultWriterReadyPromiseInitialize(writer); - } - function defaultWriterReadyPromiseResetToRejected(writer, reason) { - defaultWriterReadyPromiseInitializeAsRejected(writer, reason); - } - function defaultWriterReadyPromiseResolve(writer) { - if (writer._readyPromise_resolve === undefined) { - return; + function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { + defaultWriterReadyPromiseInitialize(writer); + defaultWriterReadyPromiseReject(writer, reason); + } + function defaultWriterReadyPromiseInitializeAsResolved(writer) { + defaultWriterReadyPromiseInitialize(writer); + defaultWriterReadyPromiseResolve(writer); + } + function defaultWriterReadyPromiseReject(writer, reason) { + if (writer._readyPromise_reject === undefined) { + return; + } + setPromiseIsHandledToTrue(writer._readyPromise); + writer._readyPromise_reject(reason); + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = "rejected"; + } + function defaultWriterReadyPromiseReset(writer) { + defaultWriterReadyPromiseInitialize(writer); + } + function defaultWriterReadyPromiseResetToRejected(writer, reason) { + defaultWriterReadyPromiseInitializeAsRejected(writer, reason); + } + function defaultWriterReadyPromiseResolve(writer) { + if (writer._readyPromise_resolve === undefined) { + return; + } + writer._readyPromise_resolve(undefined); + writer._readyPromise_resolve = undefined; + writer._readyPromise_reject = undefined; + writer._readyPromiseState = "fulfilled"; } - writer._readyPromise_resolve(undefined); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'fulfilled'; - } - /// - const NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined; + /// + const NativeDOMException = + typeof DOMException !== "undefined" ? DOMException : undefined; - /// - function isDOMExceptionConstructor(ctor) { - if (!(typeof ctor === 'function' || typeof ctor === 'object')) { + /// + function isDOMExceptionConstructor(ctor) { + if (!(typeof ctor === "function" || typeof ctor === "object")) { return false; - } - try { + } + try { new ctor(); return true; - } - catch (_a) { + } catch (_a) { return false; + } } - } - function createDOMExceptionPolyfill() { - // eslint-disable-next-line no-shadow - const ctor = function DOMException(message, name) { - this.message = message || ''; - this.name = name || 'Error'; + function createDOMExceptionPolyfill() { + // eslint-disable-next-line no-shadow + const ctor = function DOMException(message, name) { + this.message = message || ""; + this.name = name || "Error"; if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); + Error.captureStackTrace(this, this.constructor); } - }; - ctor.prototype = Object.create(Error.prototype); - Object.defineProperty(ctor.prototype, 'constructor', { value: ctor, writable: true, configurable: true }); - return ctor; - } - // eslint-disable-next-line no-redeclare - const DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill(); + }; + ctor.prototype = Object.create(Error.prototype); + Object.defineProperty(ctor.prototype, "constructor", { + value: ctor, + writable: true, + configurable: true, + }); + return ctor; + } + // eslint-disable-next-line no-redeclare + const DOMException$1 = isDOMExceptionConstructor(NativeDOMException) + ? NativeDOMException + : createDOMExceptionPolyfill(); - function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) { - const reader = AcquireReadableStreamDefaultReader(source); - const writer = AcquireWritableStreamDefaultWriter(dest); - source._disturbed = true; - let shuttingDown = false; - // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown. - let currentWrite = promiseResolvedWith(undefined); - return newPromise((resolve, reject) => { + function ReadableStreamPipeTo( + source, + dest, + preventClose, + preventAbort, + preventCancel, + signal + ) { + const reader = AcquireReadableStreamDefaultReader(source); + const writer = AcquireWritableStreamDefaultWriter(dest); + source._disturbed = true; + let shuttingDown = false; + // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown. + let currentWrite = promiseResolvedWith(undefined); + return newPromise((resolve, reject) => { let abortAlgorithm; if (signal !== undefined) { - abortAlgorithm = () => { - const error = new DOMException$1('Aborted', 'AbortError'); - const actions = []; - if (!preventAbort) { - actions.push(() => { - if (dest._state === 'writable') { - return WritableStreamAbort(dest, error); - } - return promiseResolvedWith(undefined); - }); + abortAlgorithm = () => { + const error = new DOMException$1("Aborted", "AbortError"); + const actions = []; + if (!preventAbort) { + actions.push(() => { + if (dest._state === "writable") { + return WritableStreamAbort(dest, error); } - if (!preventCancel) { - actions.push(() => { - if (source._state === 'readable') { - return ReadableStreamCancel(source, error); - } - return promiseResolvedWith(undefined); - }); - } - shutdownWithAction(() => Promise.all(actions.map(action => action())), true, error); - }; - if (signal.aborted) { - abortAlgorithm(); - return; + return promiseResolvedWith(undefined); + }); } - signal.addEventListener('abort', abortAlgorithm); + if (!preventCancel) { + actions.push(() => { + if (source._state === "readable") { + return ReadableStreamCancel(source, error); + } + return promiseResolvedWith(undefined); + }); + } + shutdownWithAction( + () => Promise.all(actions.map((action) => action())), + true, + error + ); + }; + if (signal.aborted) { + abortAlgorithm(); + return; + } + signal.addEventListener("abort", abortAlgorithm); } // Using reader and writer, read all chunks from this and write them to dest // - Backpressure must be enforced // - Shutdown must stop all activity function pipeLoop() { - return newPromise((resolveLoop, rejectLoop) => { - function next(done) { - if (done) { - resolveLoop(); - } - else { - // Use `PerformPromiseThen` instead of `uponPromise` to avoid - // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers - PerformPromiseThen(pipeStep(), next, rejectLoop); - } - } - next(false); - }); + return newPromise((resolveLoop, rejectLoop) => { + function next(done) { + if (done) { + resolveLoop(); + } else { + // Use `PerformPromiseThen` instead of `uponPromise` to avoid + // adding unnecessary `.catch(rethrowAssertionErrorRejection)` handlers + PerformPromiseThen(pipeStep(), next, rejectLoop); + } + } + next(false); + }); } function pipeStep() { - if (shuttingDown) { - return promiseResolvedWith(true); - } - return PerformPromiseThen(writer._readyPromise, () => { - return newPromise((resolveRead, rejectRead) => { - ReadableStreamDefaultReaderRead(reader, { - _chunkSteps: chunk => { - currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, chunk), undefined, noop); - resolveRead(false); - }, - _closeSteps: () => resolveRead(true), - _errorSteps: rejectRead - }); - }); + if (shuttingDown) { + return promiseResolvedWith(true); + } + return PerformPromiseThen(writer._readyPromise, () => { + return newPromise((resolveRead, rejectRead) => { + ReadableStreamDefaultReaderRead(reader, { + _chunkSteps: (chunk) => { + currentWrite = PerformPromiseThen( + WritableStreamDefaultWriterWrite(writer, chunk), + undefined, + noop + ); + resolveRead(false); + }, + _closeSteps: () => resolveRead(true), + _errorSteps: rejectRead, + }); }); + }); } // Errors must be propagated forward - isOrBecomesErrored(source, reader._closedPromise, storedError => { - if (!preventAbort) { - shutdownWithAction(() => WritableStreamAbort(dest, storedError), true, storedError); - } - else { - shutdown(true, storedError); - } + isOrBecomesErrored(source, reader._closedPromise, (storedError) => { + if (!preventAbort) { + shutdownWithAction( + () => WritableStreamAbort(dest, storedError), + true, + storedError + ); + } else { + shutdown(true, storedError); + } }); // Errors must be propagated backward - isOrBecomesErrored(dest, writer._closedPromise, storedError => { - if (!preventCancel) { - shutdownWithAction(() => ReadableStreamCancel(source, storedError), true, storedError); - } - else { - shutdown(true, storedError); - } + isOrBecomesErrored(dest, writer._closedPromise, (storedError) => { + if (!preventCancel) { + shutdownWithAction( + () => ReadableStreamCancel(source, storedError), + true, + storedError + ); + } else { + shutdown(true, storedError); + } }); // Closing must be propagated forward isOrBecomesClosed(source, reader._closedPromise, () => { - if (!preventClose) { - shutdownWithAction(() => WritableStreamDefaultWriterCloseWithErrorPropagation(writer)); - } - else { - shutdown(); - } + if (!preventClose) { + shutdownWithAction(() => + WritableStreamDefaultWriterCloseWithErrorPropagation(writer) + ); + } else { + shutdown(); + } }); // Closing must be propagated backward - if (WritableStreamCloseQueuedOrInFlight(dest) || dest._state === 'closed') { - const destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); - if (!preventCancel) { - shutdownWithAction(() => ReadableStreamCancel(source, destClosed), true, destClosed); - } - else { - shutdown(true, destClosed); - } + if ( + WritableStreamCloseQueuedOrInFlight(dest) || + dest._state === "closed" + ) { + const destClosed = new TypeError( + "the destination writable stream closed before all data could be piped to it" + ); + if (!preventCancel) { + shutdownWithAction( + () => ReadableStreamCancel(source, destClosed), + true, + destClosed + ); + } else { + shutdown(true, destClosed); + } } setPromiseIsHandledToTrue(pipeLoop()); function waitForWritesToFinish() { - // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait - // for that too. - const oldCurrentWrite = currentWrite; - return PerformPromiseThen(currentWrite, () => oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined); + // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait + // for that too. + const oldCurrentWrite = currentWrite; + return PerformPromiseThen(currentWrite, () => + oldCurrentWrite !== currentWrite + ? waitForWritesToFinish() + : undefined + ); } function isOrBecomesErrored(stream, promise, action) { - if (stream._state === 'errored') { - action(stream._storedError); - } - else { - uponRejection(promise, action); - } + if (stream._state === "errored") { + action(stream._storedError); + } else { + uponRejection(promise, action); + } } function isOrBecomesClosed(stream, promise, action) { - if (stream._state === 'closed') { - action(); - } - else { - uponFulfillment(promise, action); - } + if (stream._state === "closed") { + action(); + } else { + uponFulfillment(promise, action); + } } - function shutdownWithAction(action, originalIsError, originalError) { - if (shuttingDown) { - return; - } - shuttingDown = true; - if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) { - uponFulfillment(waitForWritesToFinish(), doTheRest); - } - else { - doTheRest(); - } - function doTheRest() { - uponPromise(action(), () => finalize(originalIsError, originalError), newError => finalize(true, newError)); - } + function shutdownWithAction( + action, + originalIsError, + originalError + ) { + if (shuttingDown) { + return; + } + shuttingDown = true; + if ( + dest._state === "writable" && + !WritableStreamCloseQueuedOrInFlight(dest) + ) { + uponFulfillment(waitForWritesToFinish(), doTheRest); + } else { + doTheRest(); + } + function doTheRest() { + uponPromise( + action(), + () => finalize(originalIsError, originalError), + (newError) => finalize(true, newError) + ); + } } function shutdown(isError, error) { - if (shuttingDown) { - return; - } - shuttingDown = true; - if (dest._state === 'writable' && !WritableStreamCloseQueuedOrInFlight(dest)) { - uponFulfillment(waitForWritesToFinish(), () => finalize(isError, error)); - } - else { - finalize(isError, error); - } + if (shuttingDown) { + return; + } + shuttingDown = true; + if ( + dest._state === "writable" && + !WritableStreamCloseQueuedOrInFlight(dest) + ) { + uponFulfillment(waitForWritesToFinish(), () => + finalize(isError, error) + ); + } else { + finalize(isError, error); + } } function finalize(isError, error) { - WritableStreamDefaultWriterRelease(writer); - ReadableStreamReaderGenericRelease(reader); - if (signal !== undefined) { - signal.removeEventListener('abort', abortAlgorithm); - } - if (isError) { - reject(error); - } - else { - resolve(undefined); - } + WritableStreamDefaultWriterRelease(writer); + ReadableStreamReaderGenericRelease(reader); + if (signal !== undefined) { + signal.removeEventListener("abort", abortAlgorithm); + } + if (isError) { + reject(error); + } else { + resolve(undefined); + } } - }); - } - - /** - * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue. - * - * @public - */ - class ReadableStreamDefaultController { - constructor() { - throw new TypeError('Illegal constructor'); + }); } + /** - * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is - * over-full. An underlying source ought to use this information to determine when and how to apply backpressure. + * Allows control of a {@link ReadableStream | readable stream}'s state and internal queue. + * + * @public */ - get desiredSize() { + class ReadableStreamDefaultController { + constructor() { + throw new TypeError("Illegal constructor"); + } + /** + * Returns the desired size to fill the controlled stream's internal queue. It can be negative, if the queue is + * over-full. An underlying source ought to use this information to determine when and how to apply backpressure. + */ + get desiredSize() { if (!IsReadableStreamDefaultController(this)) { - throw defaultControllerBrandCheckException$1('desiredSize'); + throw defaultControllerBrandCheckException$1("desiredSize"); } return ReadableStreamDefaultControllerGetDesiredSize(this); - } - /** - * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from - * the stream, but once those are read, the stream will become closed. - */ - close() { + } + /** + * Closes the controlled readable stream. Consumers will still be able to read any previously-enqueued chunks from + * the stream, but once those are read, the stream will become closed. + */ + close() { if (!IsReadableStreamDefaultController(this)) { - throw defaultControllerBrandCheckException$1('close'); + throw defaultControllerBrandCheckException$1("close"); } if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) { - throw new TypeError('The stream is not in a state that permits close'); + throw new TypeError( + "The stream is not in a state that permits close" + ); } ReadableStreamDefaultControllerClose(this); - } - enqueue(chunk = undefined) { + } + enqueue(chunk = undefined) { if (!IsReadableStreamDefaultController(this)) { - throw defaultControllerBrandCheckException$1('enqueue'); + throw defaultControllerBrandCheckException$1("enqueue"); } if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(this)) { - throw new TypeError('The stream is not in a state that permits enqueue'); + throw new TypeError( + "The stream is not in a state that permits enqueue" + ); } return ReadableStreamDefaultControllerEnqueue(this, chunk); - } - /** - * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`. - */ - error(e = undefined) { + } + /** + * Errors the controlled readable stream, making all future interactions with it fail with the given error `e`. + */ + error(e = undefined) { if (!IsReadableStreamDefaultController(this)) { - throw defaultControllerBrandCheckException$1('error'); + throw defaultControllerBrandCheckException$1("error"); } ReadableStreamDefaultControllerError(this, e); - } - /** @internal */ - [CancelSteps](reason) { + } + /** @internal */ + [CancelSteps](reason) { ResetQueue(this); const result = this._cancelAlgorithm(reason); ReadableStreamDefaultControllerClearAlgorithms(this); return result; - } - /** @internal */ - [PullSteps](readRequest) { + } + /** @internal */ + [PullSteps](readRequest) { const stream = this._controlledReadableStream; if (this._queue.length > 0) { - const chunk = DequeueValue(this); - if (this._closeRequested && this._queue.length === 0) { - ReadableStreamDefaultControllerClearAlgorithms(this); - ReadableStreamClose(stream); - } - else { - ReadableStreamDefaultControllerCallPullIfNeeded(this); - } - readRequest._chunkSteps(chunk); - } - else { - ReadableStreamAddReadRequest(stream, readRequest); + const chunk = DequeueValue(this); + if (this._closeRequested && this._queue.length === 0) { + ReadableStreamDefaultControllerClearAlgorithms(this); + ReadableStreamClose(stream); + } else { ReadableStreamDefaultControllerCallPullIfNeeded(this); + } + readRequest._chunkSteps(chunk); + } else { + ReadableStreamAddReadRequest(stream, readRequest); + ReadableStreamDefaultControllerCallPullIfNeeded(this); } + } } - } - Object.defineProperties(ReadableStreamDefaultController.prototype, { - close: { enumerable: true }, - enqueue: { enumerable: true }, - error: { enumerable: true }, - desiredSize: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(ReadableStreamDefaultController.prototype, SymbolPolyfill.toStringTag, { - value: 'ReadableStreamDefaultController', - configurable: true + Object.defineProperties(ReadableStreamDefaultController.prototype, { + close: { enumerable: true }, + enqueue: { enumerable: true }, + error: { enumerable: true }, + desiredSize: { enumerable: true }, }); - } - // Abstract operations for the ReadableStreamDefaultController. - function IsReadableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + ReadableStreamDefaultController.prototype, + SymbolPolyfill.toStringTag, + { + value: "ReadableStreamDefaultController", + configurable: true, + } + ); } - if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) { + // Abstract operations for the ReadableStreamDefaultController. + function IsReadableStreamDefaultController(x) { + if (!typeIsObject(x)) { return false; + } + if ( + !Object.prototype.hasOwnProperty.call( + x, + "_controlledReadableStream" + ) + ) { + return false; + } + return x instanceof ReadableStreamDefaultController; } - return x instanceof ReadableStreamDefaultController; - } - function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { - const shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); - if (!shouldPull) { + function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { + const shouldPull = + ReadableStreamDefaultControllerShouldCallPull(controller); + if (!shouldPull) { return; - } - if (controller._pulling) { + } + if (controller._pulling) { controller._pullAgain = true; return; - } - controller._pulling = true; - const pullPromise = controller._pullAlgorithm(); - uponPromise(pullPromise, () => { - controller._pulling = false; - if (controller._pullAgain) { + } + controller._pulling = true; + const pullPromise = controller._pullAlgorithm(); + uponPromise( + pullPromise, + () => { + controller._pulling = false; + if (controller._pullAgain) { controller._pullAgain = false; ReadableStreamDefaultControllerCallPullIfNeeded(controller); + } + }, + (e) => { + ReadableStreamDefaultControllerError(controller, e); } - }, e => { - ReadableStreamDefaultControllerError(controller, e); - }); - } - function ReadableStreamDefaultControllerShouldCallPull(controller) { - const stream = controller._controlledReadableStream; - if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) { + ); + } + function ReadableStreamDefaultControllerShouldCallPull(controller) { + const stream = controller._controlledReadableStream; + if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) { return false; - } - if (!controller._started) { + } + if (!controller._started) { return false; - } - if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) { + } + if ( + IsReadableStreamLocked(stream) && + ReadableStreamGetNumReadRequests(stream) > 0 + ) { return true; - } - const desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); - if (desiredSize > 0) { + } + const desiredSize = + ReadableStreamDefaultControllerGetDesiredSize(controller); + if (desiredSize > 0) { return true; + } + return false; } - return false; - } - function ReadableStreamDefaultControllerClearAlgorithms(controller) { - controller._pullAlgorithm = undefined; - controller._cancelAlgorithm = undefined; - controller._strategySizeAlgorithm = undefined; - } - // A client of ReadableStreamDefaultController may use these functions directly to bypass state check. - function ReadableStreamDefaultControllerClose(controller) { - if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) { + function ReadableStreamDefaultControllerClearAlgorithms(controller) { + controller._pullAlgorithm = undefined; + controller._cancelAlgorithm = undefined; + controller._strategySizeAlgorithm = undefined; + } + // A client of ReadableStreamDefaultController may use these functions directly to bypass state check. + function ReadableStreamDefaultControllerClose(controller) { + if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) { return; - } - const stream = controller._controlledReadableStream; - controller._closeRequested = true; - if (controller._queue.length === 0) { + } + const stream = controller._controlledReadableStream; + controller._closeRequested = true; + if (controller._queue.length === 0) { ReadableStreamDefaultControllerClearAlgorithms(controller); ReadableStreamClose(stream); + } } - } - function ReadableStreamDefaultControllerEnqueue(controller, chunk) { - if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) { + function ReadableStreamDefaultControllerEnqueue(controller, chunk) { + if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(controller)) { return; - } - const stream = controller._controlledReadableStream; - if (IsReadableStreamLocked(stream) && ReadableStreamGetNumReadRequests(stream) > 0) { + } + const stream = controller._controlledReadableStream; + if ( + IsReadableStreamLocked(stream) && + ReadableStreamGetNumReadRequests(stream) > 0 + ) { ReadableStreamFulfillReadRequest(stream, chunk, false); - } - else { + } else { let chunkSize; try { - chunkSize = controller._strategySizeAlgorithm(chunk); - } - catch (chunkSizeE) { - ReadableStreamDefaultControllerError(controller, chunkSizeE); - throw chunkSizeE; + chunkSize = controller._strategySizeAlgorithm(chunk); + } catch (chunkSizeE) { + ReadableStreamDefaultControllerError(controller, chunkSizeE); + throw chunkSizeE; } try { - EnqueueValueWithSize(controller, chunk, chunkSize); - } - catch (enqueueE) { - ReadableStreamDefaultControllerError(controller, enqueueE); - throw enqueueE; + EnqueueValueWithSize(controller, chunk, chunkSize); + } catch (enqueueE) { + ReadableStreamDefaultControllerError(controller, enqueueE); + throw enqueueE; } + } + ReadableStreamDefaultControllerCallPullIfNeeded(controller); } - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - } - function ReadableStreamDefaultControllerError(controller, e) { - const stream = controller._controlledReadableStream; - if (stream._state !== 'readable') { + function ReadableStreamDefaultControllerError(controller, e) { + const stream = controller._controlledReadableStream; + if (stream._state !== "readable") { return; + } + ResetQueue(controller); + ReadableStreamDefaultControllerClearAlgorithms(controller); + ReadableStreamError(stream, e); } - ResetQueue(controller); - ReadableStreamDefaultControllerClearAlgorithms(controller); - ReadableStreamError(stream, e); - } - function ReadableStreamDefaultControllerGetDesiredSize(controller) { - const state = controller._controlledReadableStream._state; - if (state === 'errored') { + function ReadableStreamDefaultControllerGetDesiredSize(controller) { + const state = controller._controlledReadableStream._state; + if (state === "errored") { return null; - } - if (state === 'closed') { + } + if (state === "closed") { return 0; + } + return controller._strategyHWM - controller._queueTotalSize; } - return controller._strategyHWM - controller._queueTotalSize; - } - // This is used in the implementation of TransformStream. - function ReadableStreamDefaultControllerHasBackpressure(controller) { - if (ReadableStreamDefaultControllerShouldCallPull(controller)) { + // This is used in the implementation of TransformStream. + function ReadableStreamDefaultControllerHasBackpressure(controller) { + if (ReadableStreamDefaultControllerShouldCallPull(controller)) { return false; + } + return true; } - return true; - } - function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) { - const state = controller._controlledReadableStream._state; - if (!controller._closeRequested && state === 'readable') { + function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) { + const state = controller._controlledReadableStream._state; + if (!controller._closeRequested && state === "readable") { return true; + } + return false; } - return false; - } - function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) { - controller._controlledReadableStream = stream; - controller._queue = undefined; - controller._queueTotalSize = undefined; - ResetQueue(controller); - controller._started = false; - controller._closeRequested = false; - controller._pullAgain = false; - controller._pulling = false; - controller._strategySizeAlgorithm = sizeAlgorithm; - controller._strategyHWM = highWaterMark; - controller._pullAlgorithm = pullAlgorithm; - controller._cancelAlgorithm = cancelAlgorithm; - stream._readableStreamController = controller; - const startResult = startAlgorithm(); - uponPromise(promiseResolvedWith(startResult), () => { - controller._started = true; - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - }, r => { - ReadableStreamDefaultControllerError(controller, r); - }); - } - function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) { - const controller = Object.create(ReadableStreamDefaultController.prototype); - let startAlgorithm = () => undefined; - let pullAlgorithm = () => promiseResolvedWith(undefined); - let cancelAlgorithm = () => promiseResolvedWith(undefined); - if (underlyingSource.start !== undefined) { + function SetUpReadableStreamDefaultController( + stream, + controller, + startAlgorithm, + pullAlgorithm, + cancelAlgorithm, + highWaterMark, + sizeAlgorithm + ) { + controller._controlledReadableStream = stream; + controller._queue = undefined; + controller._queueTotalSize = undefined; + ResetQueue(controller); + controller._started = false; + controller._closeRequested = false; + controller._pullAgain = false; + controller._pulling = false; + controller._strategySizeAlgorithm = sizeAlgorithm; + controller._strategyHWM = highWaterMark; + controller._pullAlgorithm = pullAlgorithm; + controller._cancelAlgorithm = cancelAlgorithm; + stream._readableStreamController = controller; + const startResult = startAlgorithm(); + uponPromise( + promiseResolvedWith(startResult), + () => { + controller._started = true; + ReadableStreamDefaultControllerCallPullIfNeeded(controller); + }, + (r) => { + ReadableStreamDefaultControllerError(controller, r); + } + ); + } + function SetUpReadableStreamDefaultControllerFromUnderlyingSource( + stream, + underlyingSource, + highWaterMark, + sizeAlgorithm + ) { + const controller = Object.create( + ReadableStreamDefaultController.prototype + ); + let startAlgorithm = () => undefined; + let pullAlgorithm = () => promiseResolvedWith(undefined); + let cancelAlgorithm = () => promiseResolvedWith(undefined); + if (underlyingSource.start !== undefined) { startAlgorithm = () => underlyingSource.start(controller); - } - if (underlyingSource.pull !== undefined) { + } + if (underlyingSource.pull !== undefined) { pullAlgorithm = () => underlyingSource.pull(controller); + } + if (underlyingSource.cancel !== undefined) { + cancelAlgorithm = (reason) => underlyingSource.cancel(reason); + } + SetUpReadableStreamDefaultController( + stream, + controller, + startAlgorithm, + pullAlgorithm, + cancelAlgorithm, + highWaterMark, + sizeAlgorithm + ); } - if (underlyingSource.cancel !== undefined) { - cancelAlgorithm = reason => underlyingSource.cancel(reason); + // Helper functions for the ReadableStreamDefaultController. + function defaultControllerBrandCheckException$1(name) { + return new TypeError( + `ReadableStreamDefaultController.prototype.${name} can only be used on a ReadableStreamDefaultController` + ); } - SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm); - } - // Helper functions for the ReadableStreamDefaultController. - function defaultControllerBrandCheckException$1(name) { - return new TypeError(`ReadableStreamDefaultController.prototype.${name} can only be used on a ReadableStreamDefaultController`); - } - function ReadableStreamTee(stream, cloneForBranch2) { - if (IsReadableByteStreamController(stream._readableStreamController)) { + function ReadableStreamTee(stream, cloneForBranch2) { + if ( + IsReadableByteStreamController(stream._readableStreamController) + ) { return ReadableByteStreamTee(stream); + } + return ReadableStreamDefaultTee(stream); } - return ReadableStreamDefaultTee(stream); - } - function ReadableStreamDefaultTee(stream, cloneForBranch2) { - const reader = AcquireReadableStreamDefaultReader(stream); - let reading = false; - let readAgain = false; - let canceled1 = false; - let canceled2 = false; - let reason1; - let reason2; - let branch1; - let branch2; - let resolveCancelPromise; - const cancelPromise = newPromise(resolve => { + function ReadableStreamDefaultTee(stream, cloneForBranch2) { + const reader = AcquireReadableStreamDefaultReader(stream); + let reading = false; + let readAgain = false; + let canceled1 = false; + let canceled2 = false; + let reason1; + let reason2; + let branch1; + let branch2; + let resolveCancelPromise; + const cancelPromise = newPromise((resolve) => { resolveCancelPromise = resolve; - }); - function pullAlgorithm() { + }); + function pullAlgorithm() { if (reading) { - readAgain = true; - return promiseResolvedWith(undefined); + readAgain = true; + return promiseResolvedWith(undefined); } reading = true; const readRequest = { - _chunkSteps: chunk => { - // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using - // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let - // successful synchronously-available reads get ahead of asynchronously-available errors. - queueMicrotask(() => { - readAgain = false; - const chunk1 = chunk; - const chunk2 = chunk; - // There is no way to access the cloning code right now in the reference implementation. - // If we add one then we'll need an implementation for serializable objects. - // if (!canceled2 && cloneForBranch2) { - // chunk2 = StructuredDeserialize(StructuredSerialize(chunk2)); - // } - if (!canceled1) { - ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, chunk1); - } - if (!canceled2) { - ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, chunk2); - } - reading = false; - if (readAgain) { - pullAlgorithm(); - } - }); - }, - _closeSteps: () => { - reading = false; - if (!canceled1) { - ReadableStreamDefaultControllerClose(branch1._readableStreamController); - } - if (!canceled2) { - ReadableStreamDefaultControllerClose(branch2._readableStreamController); - } - if (!canceled1 || !canceled2) { - resolveCancelPromise(undefined); - } - }, - _errorSteps: () => { - reading = false; + _chunkSteps: (chunk) => { + // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using + // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let + // successful synchronously-available reads get ahead of asynchronously-available errors. + queueMicrotask(() => { + readAgain = false; + const chunk1 = chunk; + const chunk2 = chunk; + // There is no way to access the cloning code right now in the reference implementation. + // If we add one then we'll need an implementation for serializable objects. + // if (!canceled2 && cloneForBranch2) { + // chunk2 = StructuredDeserialize(StructuredSerialize(chunk2)); + // } + if (!canceled1) { + ReadableStreamDefaultControllerEnqueue( + branch1._readableStreamController, + chunk1 + ); + } + if (!canceled2) { + ReadableStreamDefaultControllerEnqueue( + branch2._readableStreamController, + chunk2 + ); + } + reading = false; + if (readAgain) { + pullAlgorithm(); + } + }); + }, + _closeSteps: () => { + reading = false; + if (!canceled1) { + ReadableStreamDefaultControllerClose( + branch1._readableStreamController + ); } + if (!canceled2) { + ReadableStreamDefaultControllerClose( + branch2._readableStreamController + ); + } + if (!canceled1 || !canceled2) { + resolveCancelPromise(undefined); + } + }, + _errorSteps: () => { + reading = false; + }, }; ReadableStreamDefaultReaderRead(reader, readRequest); return promiseResolvedWith(undefined); - } - function cancel1Algorithm(reason) { + } + function cancel1Algorithm(reason) { canceled1 = true; reason1 = reason; if (canceled2) { - const compositeReason = CreateArrayFromList([reason1, reason2]); - const cancelResult = ReadableStreamCancel(stream, compositeReason); - resolveCancelPromise(cancelResult); + const compositeReason = CreateArrayFromList([reason1, reason2]); + const cancelResult = ReadableStreamCancel( + stream, + compositeReason + ); + resolveCancelPromise(cancelResult); } return cancelPromise; - } - function cancel2Algorithm(reason) { + } + function cancel2Algorithm(reason) { canceled2 = true; reason2 = reason; if (canceled1) { - const compositeReason = CreateArrayFromList([reason1, reason2]); - const cancelResult = ReadableStreamCancel(stream, compositeReason); - resolveCancelPromise(cancelResult); + const compositeReason = CreateArrayFromList([reason1, reason2]); + const cancelResult = ReadableStreamCancel( + stream, + compositeReason + ); + resolveCancelPromise(cancelResult); } return cancelPromise; - } - function startAlgorithm() { + } + function startAlgorithm() { // do nothing - } - branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm); - branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm); - uponRejection(reader._closedPromise, (r) => { - ReadableStreamDefaultControllerError(branch1._readableStreamController, r); - ReadableStreamDefaultControllerError(branch2._readableStreamController, r); + } + branch1 = CreateReadableStream( + startAlgorithm, + pullAlgorithm, + cancel1Algorithm + ); + branch2 = CreateReadableStream( + startAlgorithm, + pullAlgorithm, + cancel2Algorithm + ); + uponRejection(reader._closedPromise, (r) => { + ReadableStreamDefaultControllerError( + branch1._readableStreamController, + r + ); + ReadableStreamDefaultControllerError( + branch2._readableStreamController, + r + ); if (!canceled1 || !canceled2) { - resolveCancelPromise(undefined); + resolveCancelPromise(undefined); } - }); - return [branch1, branch2]; - } - function ReadableByteStreamTee(stream) { - let reader = AcquireReadableStreamDefaultReader(stream); - let reading = false; - let readAgainForBranch1 = false; - let readAgainForBranch2 = false; - let canceled1 = false; - let canceled2 = false; - let reason1; - let reason2; - let branch1; - let branch2; - let resolveCancelPromise; - const cancelPromise = newPromise(resolve => { - resolveCancelPromise = resolve; - }); - function forwardReaderError(thisReader) { - uponRejection(thisReader._closedPromise, r => { - if (thisReader !== reader) { - return; - } - ReadableByteStreamControllerError(branch1._readableStreamController, r); - ReadableByteStreamControllerError(branch2._readableStreamController, r); - if (!canceled1 || !canceled2) { - resolveCancelPromise(undefined); - } - }); + }); + return [branch1, branch2]; } - function pullWithDefaultReader() { + function ReadableByteStreamTee(stream) { + let reader = AcquireReadableStreamDefaultReader(stream); + let reading = false; + let readAgainForBranch1 = false; + let readAgainForBranch2 = false; + let canceled1 = false; + let canceled2 = false; + let reason1; + let reason2; + let branch1; + let branch2; + let resolveCancelPromise; + const cancelPromise = newPromise((resolve) => { + resolveCancelPromise = resolve; + }); + function forwardReaderError(thisReader) { + uponRejection(thisReader._closedPromise, (r) => { + if (thisReader !== reader) { + return; + } + ReadableByteStreamControllerError( + branch1._readableStreamController, + r + ); + ReadableByteStreamControllerError( + branch2._readableStreamController, + r + ); + if (!canceled1 || !canceled2) { + resolveCancelPromise(undefined); + } + }); + } + function pullWithDefaultReader() { if (IsReadableStreamBYOBReader(reader)) { - ReadableStreamReaderGenericRelease(reader); - reader = AcquireReadableStreamDefaultReader(stream); - forwardReaderError(reader); + ReadableStreamReaderGenericRelease(reader); + reader = AcquireReadableStreamDefaultReader(stream); + forwardReaderError(reader); } const readRequest = { - _chunkSteps: chunk => { - // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using - // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let - // successful synchronously-available reads get ahead of asynchronously-available errors. - queueMicrotask(() => { - readAgainForBranch1 = false; - readAgainForBranch2 = false; - const chunk1 = chunk; - let chunk2 = chunk; - if (!canceled1 && !canceled2) { - try { - chunk2 = CloneAsUint8Array(chunk); - } - catch (cloneE) { - ReadableByteStreamControllerError(branch1._readableStreamController, cloneE); - ReadableByteStreamControllerError(branch2._readableStreamController, cloneE); - resolveCancelPromise(ReadableStreamCancel(stream, cloneE)); - return; - } - } - if (!canceled1) { - ReadableByteStreamControllerEnqueue(branch1._readableStreamController, chunk1); - } - if (!canceled2) { - ReadableByteStreamControllerEnqueue(branch2._readableStreamController, chunk2); - } - reading = false; - if (readAgainForBranch1) { - pull1Algorithm(); - } - else if (readAgainForBranch2) { - pull2Algorithm(); - } - }); - }, - _closeSteps: () => { - reading = false; - if (!canceled1) { - ReadableByteStreamControllerClose(branch1._readableStreamController); + _chunkSteps: (chunk) => { + // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using + // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let + // successful synchronously-available reads get ahead of asynchronously-available errors. + queueMicrotask(() => { + readAgainForBranch1 = false; + readAgainForBranch2 = false; + const chunk1 = chunk; + let chunk2 = chunk; + if (!canceled1 && !canceled2) { + try { + chunk2 = CloneAsUint8Array(chunk); + } catch (cloneE) { + ReadableByteStreamControllerError( + branch1._readableStreamController, + cloneE + ); + ReadableByteStreamControllerError( + branch2._readableStreamController, + cloneE + ); + resolveCancelPromise( + ReadableStreamCancel(stream, cloneE) + ); + return; } - if (!canceled2) { - ReadableByteStreamControllerClose(branch2._readableStreamController); - } - if (branch1._readableStreamController._pendingPullIntos.length > 0) { - ReadableByteStreamControllerRespond(branch1._readableStreamController, 0); - } - if (branch2._readableStreamController._pendingPullIntos.length > 0) { - ReadableByteStreamControllerRespond(branch2._readableStreamController, 0); - } - if (!canceled1 || !canceled2) { - resolveCancelPromise(undefined); - } - }, - _errorSteps: () => { - reading = false; + } + if (!canceled1) { + ReadableByteStreamControllerEnqueue( + branch1._readableStreamController, + chunk1 + ); + } + if (!canceled2) { + ReadableByteStreamControllerEnqueue( + branch2._readableStreamController, + chunk2 + ); + } + reading = false; + if (readAgainForBranch1) { + pull1Algorithm(); + } else if (readAgainForBranch2) { + pull2Algorithm(); + } + }); + }, + _closeSteps: () => { + reading = false; + if (!canceled1) { + ReadableByteStreamControllerClose( + branch1._readableStreamController + ); } + if (!canceled2) { + ReadableByteStreamControllerClose( + branch2._readableStreamController + ); + } + if ( + branch1._readableStreamController._pendingPullIntos.length > 0 + ) { + ReadableByteStreamControllerRespond( + branch1._readableStreamController, + 0 + ); + } + if ( + branch2._readableStreamController._pendingPullIntos.length > 0 + ) { + ReadableByteStreamControllerRespond( + branch2._readableStreamController, + 0 + ); + } + if (!canceled1 || !canceled2) { + resolveCancelPromise(undefined); + } + }, + _errorSteps: () => { + reading = false; + }, }; ReadableStreamDefaultReaderRead(reader, readRequest); - } - function pullWithBYOBReader(view, forBranch2) { + } + function pullWithBYOBReader(view, forBranch2) { if (IsReadableStreamDefaultReader(reader)) { - ReadableStreamReaderGenericRelease(reader); - reader = AcquireReadableStreamBYOBReader(stream); - forwardReaderError(reader); + ReadableStreamReaderGenericRelease(reader); + reader = AcquireReadableStreamBYOBReader(stream); + forwardReaderError(reader); } const byobBranch = forBranch2 ? branch2 : branch1; const otherBranch = forBranch2 ? branch1 : branch2; const readIntoRequest = { - _chunkSteps: chunk => { - // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using - // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let - // successful synchronously-available reads get ahead of asynchronously-available errors. - queueMicrotask(() => { - readAgainForBranch1 = false; - readAgainForBranch2 = false; - const byobCanceled = forBranch2 ? canceled2 : canceled1; - const otherCanceled = forBranch2 ? canceled1 : canceled2; - if (!otherCanceled) { - let clonedChunk; - try { - clonedChunk = CloneAsUint8Array(chunk); - } - catch (cloneE) { - ReadableByteStreamControllerError(byobBranch._readableStreamController, cloneE); - ReadableByteStreamControllerError(otherBranch._readableStreamController, cloneE); - resolveCancelPromise(ReadableStreamCancel(stream, cloneE)); - return; - } - if (!byobCanceled) { - ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk); - } - ReadableByteStreamControllerEnqueue(otherBranch._readableStreamController, clonedChunk); - } - else if (!byobCanceled) { - ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk); - } - reading = false; - if (readAgainForBranch1) { - pull1Algorithm(); - } - else if (readAgainForBranch2) { - pull2Algorithm(); - } - }); - }, - _closeSteps: chunk => { - reading = false; - const byobCanceled = forBranch2 ? canceled2 : canceled1; - const otherCanceled = forBranch2 ? canceled1 : canceled2; + _chunkSteps: (chunk) => { + // This needs to be delayed a microtask because it takes at least a microtask to detect errors (using + // reader._closedPromise below), and we want errors in stream to error both branches immediately. We cannot let + // successful synchronously-available reads get ahead of asynchronously-available errors. + queueMicrotask(() => { + readAgainForBranch1 = false; + readAgainForBranch2 = false; + const byobCanceled = forBranch2 ? canceled2 : canceled1; + const otherCanceled = forBranch2 ? canceled1 : canceled2; + if (!otherCanceled) { + let clonedChunk; + try { + clonedChunk = CloneAsUint8Array(chunk); + } catch (cloneE) { + ReadableByteStreamControllerError( + byobBranch._readableStreamController, + cloneE + ); + ReadableByteStreamControllerError( + otherBranch._readableStreamController, + cloneE + ); + resolveCancelPromise( + ReadableStreamCancel(stream, cloneE) + ); + return; + } if (!byobCanceled) { - ReadableByteStreamControllerClose(byobBranch._readableStreamController); + ReadableByteStreamControllerRespondWithNewView( + byobBranch._readableStreamController, + chunk + ); } - if (!otherCanceled) { - ReadableByteStreamControllerClose(otherBranch._readableStreamController); - } - if (chunk !== undefined) { - if (!byobCanceled) { - ReadableByteStreamControllerRespondWithNewView(byobBranch._readableStreamController, chunk); - } - if (!otherCanceled && otherBranch._readableStreamController._pendingPullIntos.length > 0) { - ReadableByteStreamControllerRespond(otherBranch._readableStreamController, 0); - } - } - if (!byobCanceled || !otherCanceled) { - resolveCancelPromise(undefined); - } - }, - _errorSteps: () => { - reading = false; + ReadableByteStreamControllerEnqueue( + otherBranch._readableStreamController, + clonedChunk + ); + } else if (!byobCanceled) { + ReadableByteStreamControllerRespondWithNewView( + byobBranch._readableStreamController, + chunk + ); + } + reading = false; + if (readAgainForBranch1) { + pull1Algorithm(); + } else if (readAgainForBranch2) { + pull2Algorithm(); + } + }); + }, + _closeSteps: (chunk) => { + reading = false; + const byobCanceled = forBranch2 ? canceled2 : canceled1; + const otherCanceled = forBranch2 ? canceled1 : canceled2; + if (!byobCanceled) { + ReadableByteStreamControllerClose( + byobBranch._readableStreamController + ); } + if (!otherCanceled) { + ReadableByteStreamControllerClose( + otherBranch._readableStreamController + ); + } + if (chunk !== undefined) { + if (!byobCanceled) { + ReadableByteStreamControllerRespondWithNewView( + byobBranch._readableStreamController, + chunk + ); + } + if ( + !otherCanceled && + otherBranch._readableStreamController._pendingPullIntos + .length > 0 + ) { + ReadableByteStreamControllerRespond( + otherBranch._readableStreamController, + 0 + ); + } + } + if (!byobCanceled || !otherCanceled) { + resolveCancelPromise(undefined); + } + }, + _errorSteps: () => { + reading = false; + }, }; ReadableStreamBYOBReaderRead(reader, view, readIntoRequest); - } - function pull1Algorithm() { + } + function pull1Algorithm() { if (reading) { - readAgainForBranch1 = true; - return promiseResolvedWith(undefined); + readAgainForBranch1 = true; + return promiseResolvedWith(undefined); } reading = true; - const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch1._readableStreamController); + const byobRequest = ReadableByteStreamControllerGetBYOBRequest( + branch1._readableStreamController + ); if (byobRequest === null) { - pullWithDefaultReader(); - } - else { - pullWithBYOBReader(byobRequest._view, false); + pullWithDefaultReader(); + } else { + pullWithBYOBReader(byobRequest._view, false); } return promiseResolvedWith(undefined); - } - function pull2Algorithm() { + } + function pull2Algorithm() { if (reading) { - readAgainForBranch2 = true; - return promiseResolvedWith(undefined); + readAgainForBranch2 = true; + return promiseResolvedWith(undefined); } reading = true; - const byobRequest = ReadableByteStreamControllerGetBYOBRequest(branch2._readableStreamController); + const byobRequest = ReadableByteStreamControllerGetBYOBRequest( + branch2._readableStreamController + ); if (byobRequest === null) { - pullWithDefaultReader(); - } - else { - pullWithBYOBReader(byobRequest._view, true); + pullWithDefaultReader(); + } else { + pullWithBYOBReader(byobRequest._view, true); } return promiseResolvedWith(undefined); - } - function cancel1Algorithm(reason) { + } + function cancel1Algorithm(reason) { canceled1 = true; reason1 = reason; if (canceled2) { - const compositeReason = CreateArrayFromList([reason1, reason2]); - const cancelResult = ReadableStreamCancel(stream, compositeReason); - resolveCancelPromise(cancelResult); + const compositeReason = CreateArrayFromList([reason1, reason2]); + const cancelResult = ReadableStreamCancel( + stream, + compositeReason + ); + resolveCancelPromise(cancelResult); } return cancelPromise; - } - function cancel2Algorithm(reason) { + } + function cancel2Algorithm(reason) { canceled2 = true; reason2 = reason; if (canceled1) { - const compositeReason = CreateArrayFromList([reason1, reason2]); - const cancelResult = ReadableStreamCancel(stream, compositeReason); - resolveCancelPromise(cancelResult); + const compositeReason = CreateArrayFromList([reason1, reason2]); + const cancelResult = ReadableStreamCancel( + stream, + compositeReason + ); + resolveCancelPromise(cancelResult); } return cancelPromise; - } - function startAlgorithm() { + } + function startAlgorithm() { return; + } + branch1 = CreateReadableByteStream( + startAlgorithm, + pull1Algorithm, + cancel1Algorithm + ); + branch2 = CreateReadableByteStream( + startAlgorithm, + pull2Algorithm, + cancel2Algorithm + ); + forwardReaderError(reader); + return [branch1, branch2]; } - branch1 = CreateReadableByteStream(startAlgorithm, pull1Algorithm, cancel1Algorithm); - branch2 = CreateReadableByteStream(startAlgorithm, pull2Algorithm, cancel2Algorithm); - forwardReaderError(reader); - return [branch1, branch2]; - } - function convertUnderlyingDefaultOrByteSource(source, context) { - assertDictionary(source, context); - const original = source; - const autoAllocateChunkSize = original === null || original === void 0 ? void 0 : original.autoAllocateChunkSize; - const cancel = original === null || original === void 0 ? void 0 : original.cancel; - const pull = original === null || original === void 0 ? void 0 : original.pull; - const start = original === null || original === void 0 ? void 0 : original.start; - const type = original === null || original === void 0 ? void 0 : original.type; - return { - autoAllocateChunkSize: autoAllocateChunkSize === undefined ? - undefined : - convertUnsignedLongLongWithEnforceRange(autoAllocateChunkSize, `${context} has member 'autoAllocateChunkSize' that`), - cancel: cancel === undefined ? - undefined : - convertUnderlyingSourceCancelCallback(cancel, original, `${context} has member 'cancel' that`), - pull: pull === undefined ? - undefined : - convertUnderlyingSourcePullCallback(pull, original, `${context} has member 'pull' that`), - start: start === undefined ? - undefined : - convertUnderlyingSourceStartCallback(start, original, `${context} has member 'start' that`), - type: type === undefined ? undefined : convertReadableStreamType(type, `${context} has member 'type' that`) - }; - } - function convertUnderlyingSourceCancelCallback(fn, original, context) { - assertFunction(fn, context); - return (reason) => promiseCall(fn, original, [reason]); - } - function convertUnderlyingSourcePullCallback(fn, original, context) { - assertFunction(fn, context); - return (controller) => promiseCall(fn, original, [controller]); - } - function convertUnderlyingSourceStartCallback(fn, original, context) { - assertFunction(fn, context); - return (controller) => reflectCall(fn, original, [controller]); - } - function convertReadableStreamType(type, context) { - type = `${type}`; - if (type !== 'bytes') { - throw new TypeError(`${context} '${type}' is not a valid enumeration value for ReadableStreamType`); + function convertUnderlyingDefaultOrByteSource(source, context) { + assertDictionary(source, context); + const original = source; + const autoAllocateChunkSize = + original === null || original === void 0 + ? void 0 + : original.autoAllocateChunkSize; + const cancel = + original === null || original === void 0 ? void 0 : original.cancel; + const pull = + original === null || original === void 0 ? void 0 : original.pull; + const start = + original === null || original === void 0 ? void 0 : original.start; + const type = + original === null || original === void 0 ? void 0 : original.type; + return { + autoAllocateChunkSize: + autoAllocateChunkSize === undefined + ? undefined + : convertUnsignedLongLongWithEnforceRange( + autoAllocateChunkSize, + `${context} has member 'autoAllocateChunkSize' that` + ), + cancel: + cancel === undefined + ? undefined + : convertUnderlyingSourceCancelCallback( + cancel, + original, + `${context} has member 'cancel' that` + ), + pull: + pull === undefined + ? undefined + : convertUnderlyingSourcePullCallback( + pull, + original, + `${context} has member 'pull' that` + ), + start: + start === undefined + ? undefined + : convertUnderlyingSourceStartCallback( + start, + original, + `${context} has member 'start' that` + ), + type: + type === undefined + ? undefined + : convertReadableStreamType( + type, + `${context} has member 'type' that` + ), + }; } - return type; - } - - function convertReaderOptions(options, context) { - assertDictionary(options, context); - const mode = options === null || options === void 0 ? void 0 : options.mode; - return { - mode: mode === undefined ? undefined : convertReadableStreamReaderMode(mode, `${context} has member 'mode' that`) - }; - } - function convertReadableStreamReaderMode(mode, context) { - mode = `${mode}`; - if (mode !== 'byob') { - throw new TypeError(`${context} '${mode}' is not a valid enumeration value for ReadableStreamReaderMode`); + function convertUnderlyingSourceCancelCallback(fn, original, context) { + assertFunction(fn, context); + return (reason) => promiseCall(fn, original, [reason]); + } + function convertUnderlyingSourcePullCallback(fn, original, context) { + assertFunction(fn, context); + return (controller) => promiseCall(fn, original, [controller]); + } + function convertUnderlyingSourceStartCallback(fn, original, context) { + assertFunction(fn, context); + return (controller) => reflectCall(fn, original, [controller]); + } + function convertReadableStreamType(type, context) { + type = `${type}`; + if (type !== "bytes") { + throw new TypeError( + `${context} '${type}' is not a valid enumeration value for ReadableStreamType` + ); + } + return type; } - return mode; - } - function convertIteratorOptions(options, context) { - assertDictionary(options, context); - const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel; - return { preventCancel: Boolean(preventCancel) }; - } + function convertReaderOptions(options, context) { + assertDictionary(options, context); + const mode = + options === null || options === void 0 ? void 0 : options.mode; + return { + mode: + mode === undefined + ? undefined + : convertReadableStreamReaderMode( + mode, + `${context} has member 'mode' that` + ), + }; + } + function convertReadableStreamReaderMode(mode, context) { + mode = `${mode}`; + if (mode !== "byob") { + throw new TypeError( + `${context} '${mode}' is not a valid enumeration value for ReadableStreamReaderMode` + ); + } + return mode; + } - function convertPipeOptions(options, context) { - assertDictionary(options, context); - const preventAbort = options === null || options === void 0 ? void 0 : options.preventAbort; - const preventCancel = options === null || options === void 0 ? void 0 : options.preventCancel; - const preventClose = options === null || options === void 0 ? void 0 : options.preventClose; - const signal = options === null || options === void 0 ? void 0 : options.signal; - if (signal !== undefined) { + function convertIteratorOptions(options, context) { + assertDictionary(options, context); + const preventCancel = + options === null || options === void 0 + ? void 0 + : options.preventCancel; + return { preventCancel: Boolean(preventCancel) }; + } + + function convertPipeOptions(options, context) { + assertDictionary(options, context); + const preventAbort = + options === null || options === void 0 + ? void 0 + : options.preventAbort; + const preventCancel = + options === null || options === void 0 + ? void 0 + : options.preventCancel; + const preventClose = + options === null || options === void 0 + ? void 0 + : options.preventClose; + const signal = + options === null || options === void 0 ? void 0 : options.signal; + if (signal !== undefined) { assertAbortSignal(signal, `${context} has member 'signal' that`); - } - return { + } + return { preventAbort: Boolean(preventAbort), preventCancel: Boolean(preventCancel), preventClose: Boolean(preventClose), - signal - }; - } - function assertAbortSignal(signal, context) { - if (!isAbortSignal(signal)) { + signal, + }; + } + function assertAbortSignal(signal, context) { + if (!isAbortSignal(signal)) { throw new TypeError(`${context} is not an AbortSignal.`); + } } - } - function convertReadableWritablePair(pair, context) { - assertDictionary(pair, context); - const readable = pair === null || pair === void 0 ? void 0 : pair.readable; - assertRequiredField(readable, 'readable', 'ReadableWritablePair'); - assertReadableStream(readable, `${context} has member 'readable' that`); - const writable = pair === null || pair === void 0 ? void 0 : pair.writable; - assertRequiredField(writable, 'writable', 'ReadableWritablePair'); - assertWritableStream(writable, `${context} has member 'writable' that`); - return { readable, writable }; - } - - /** - * A readable stream represents a source of data, from which you can read. - * - * @public - */ - class ReadableStream { - constructor(rawUnderlyingSource = {}, rawStrategy = {}) { - if (rawUnderlyingSource === undefined) { - rawUnderlyingSource = null; - } - else { - assertObject(rawUnderlyingSource, 'First parameter'); - } - const strategy = convertQueuingStrategy(rawStrategy, 'Second parameter'); - const underlyingSource = convertUnderlyingDefaultOrByteSource(rawUnderlyingSource, 'First parameter'); - InitializeReadableStream(this); - if (underlyingSource.type === 'bytes') { - if (strategy.size !== undefined) { - throw new RangeError('The strategy for a byte stream cannot have a size function'); - } - const highWaterMark = ExtractHighWaterMark(strategy, 0); - SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark); - } - else { - const sizeAlgorithm = ExtractSizeAlgorithm(strategy); - const highWaterMark = ExtractHighWaterMark(strategy, 1); - SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm); - } + function convertReadableWritablePair(pair, context) { + assertDictionary(pair, context); + const readable = + pair === null || pair === void 0 ? void 0 : pair.readable; + assertRequiredField(readable, "readable", "ReadableWritablePair"); + assertReadableStream( + readable, + `${context} has member 'readable' that` + ); + const writable = + pair === null || pair === void 0 ? void 0 : pair.writable; + assertRequiredField(writable, "writable", "ReadableWritablePair"); + assertWritableStream( + writable, + `${context} has member 'writable' that` + ); + return { readable, writable }; } + /** - * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}. + * A readable stream represents a source of data, from which you can read. + * + * @public */ - get locked() { + class ReadableStream { + constructor(rawUnderlyingSource = {}, rawStrategy = {}) { + if (rawUnderlyingSource === undefined) { + rawUnderlyingSource = null; + } else { + assertObject(rawUnderlyingSource, "First parameter"); + } + const strategy = convertQueuingStrategy( + rawStrategy, + "Second parameter" + ); + const underlyingSource = convertUnderlyingDefaultOrByteSource( + rawUnderlyingSource, + "First parameter" + ); + InitializeReadableStream(this); + if (underlyingSource.type === "bytes") { + if (strategy.size !== undefined) { + throw new RangeError( + "The strategy for a byte stream cannot have a size function" + ); + } + const highWaterMark = ExtractHighWaterMark(strategy, 0); + SetUpReadableByteStreamControllerFromUnderlyingSource( + this, + underlyingSource, + highWaterMark + ); + } else { + const sizeAlgorithm = ExtractSizeAlgorithm(strategy); + const highWaterMark = ExtractHighWaterMark(strategy, 1); + SetUpReadableStreamDefaultControllerFromUnderlyingSource( + this, + underlyingSource, + highWaterMark, + sizeAlgorithm + ); + } + } + /** + * Whether or not the readable stream is locked to a {@link ReadableStreamDefaultReader | reader}. + */ + get locked() { if (!IsReadableStream(this)) { - throw streamBrandCheckException$1('locked'); + throw streamBrandCheckException$1("locked"); } return IsReadableStreamLocked(this); - } - /** - * Cancels the stream, signaling a loss of interest in the stream by a consumer. - * - * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()} - * method, which might or might not use it. - */ - cancel(reason = undefined) { + } + /** + * Cancels the stream, signaling a loss of interest in the stream by a consumer. + * + * The supplied `reason` argument will be given to the underlying source's {@link UnderlyingSource.cancel | cancel()} + * method, which might or might not use it. + */ + cancel(reason = undefined) { if (!IsReadableStream(this)) { - return promiseRejectedWith(streamBrandCheckException$1('cancel')); + return promiseRejectedWith(streamBrandCheckException$1("cancel")); } if (IsReadableStreamLocked(this)) { - return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader')); + return promiseRejectedWith( + new TypeError( + "Cannot cancel a stream that already has a reader" + ) + ); } return ReadableStreamCancel(this, reason); - } - getReader(rawOptions = undefined) { + } + getReader(rawOptions = undefined) { if (!IsReadableStream(this)) { - throw streamBrandCheckException$1('getReader'); + throw streamBrandCheckException$1("getReader"); } - const options = convertReaderOptions(rawOptions, 'First parameter'); + const options = convertReaderOptions(rawOptions, "First parameter"); if (options.mode === undefined) { - return AcquireReadableStreamDefaultReader(this); + return AcquireReadableStreamDefaultReader(this); } return AcquireReadableStreamBYOBReader(this); - } - pipeThrough(rawTransform, rawOptions = {}) { + } + pipeThrough(rawTransform, rawOptions = {}) { if (!IsReadableStream(this)) { - throw streamBrandCheckException$1('pipeThrough'); + throw streamBrandCheckException$1("pipeThrough"); } - assertRequiredArgument(rawTransform, 1, 'pipeThrough'); - const transform = convertReadableWritablePair(rawTransform, 'First parameter'); - const options = convertPipeOptions(rawOptions, 'Second parameter'); + assertRequiredArgument(rawTransform, 1, "pipeThrough"); + const transform = convertReadableWritablePair( + rawTransform, + "First parameter" + ); + const options = convertPipeOptions(rawOptions, "Second parameter"); if (IsReadableStreamLocked(this)) { - throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream'); + throw new TypeError( + "ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream" + ); } if (IsWritableStreamLocked(transform.writable)) { - throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream'); + throw new TypeError( + "ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream" + ); } - const promise = ReadableStreamPipeTo(this, transform.writable, options.preventClose, options.preventAbort, options.preventCancel, options.signal); + const promise = ReadableStreamPipeTo( + this, + transform.writable, + options.preventClose, + options.preventAbort, + options.preventCancel, + options.signal + ); setPromiseIsHandledToTrue(promise); return transform.readable; - } - pipeTo(destination, rawOptions = {}) { + } + pipeTo(destination, rawOptions = {}) { if (!IsReadableStream(this)) { - return promiseRejectedWith(streamBrandCheckException$1('pipeTo')); + return promiseRejectedWith(streamBrandCheckException$1("pipeTo")); } if (destination === undefined) { - return promiseRejectedWith(`Parameter 1 is required in 'pipeTo'.`); + return promiseRejectedWith( + `Parameter 1 is required in 'pipeTo'.` + ); } if (!IsWritableStream(destination)) { - return promiseRejectedWith(new TypeError(`ReadableStream.prototype.pipeTo's first argument must be a WritableStream`)); + return promiseRejectedWith( + new TypeError( + `ReadableStream.prototype.pipeTo's first argument must be a WritableStream` + ) + ); } let options; try { - options = convertPipeOptions(rawOptions, 'Second parameter'); - } - catch (e) { - return promiseRejectedWith(e); + options = convertPipeOptions(rawOptions, "Second parameter"); + } catch (e) { + return promiseRejectedWith(e); } if (IsReadableStreamLocked(this)) { - return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); + return promiseRejectedWith( + new TypeError( + "ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream" + ) + ); } if (IsWritableStreamLocked(destination)) { - return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); + return promiseRejectedWith( + new TypeError( + "ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream" + ) + ); } - return ReadableStreamPipeTo(this, destination, options.preventClose, options.preventAbort, options.preventCancel, options.signal); - } - /** - * Tees this readable stream, returning a two-element array containing the two resulting branches as - * new {@link ReadableStream} instances. - * - * Teeing a stream will lock it, preventing any other consumer from acquiring a reader. - * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be - * propagated to the stream's underlying source. - * - * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable, - * this could allow interference between the two branches. - */ - tee() { + return ReadableStreamPipeTo( + this, + destination, + options.preventClose, + options.preventAbort, + options.preventCancel, + options.signal + ); + } + /** + * Tees this readable stream, returning a two-element array containing the two resulting branches as + * new {@link ReadableStream} instances. + * + * Teeing a stream will lock it, preventing any other consumer from acquiring a reader. + * To cancel the stream, cancel both of the resulting branches; a composite cancellation reason will then be + * propagated to the stream's underlying source. + * + * Note that the chunks seen in each branch will be the same object. If the chunks are not immutable, + * this could allow interference between the two branches. + */ + tee() { if (!IsReadableStream(this)) { - throw streamBrandCheckException$1('tee'); + throw streamBrandCheckException$1("tee"); } const branches = ReadableStreamTee(this); return CreateArrayFromList(branches); - } - values(rawOptions = undefined) { + } + values(rawOptions = undefined) { if (!IsReadableStream(this)) { - throw streamBrandCheckException$1('values'); + throw streamBrandCheckException$1("values"); } - const options = convertIteratorOptions(rawOptions, 'First parameter'); - return AcquireReadableStreamAsyncIterator(this, options.preventCancel); + const options = convertIteratorOptions( + rawOptions, + "First parameter" + ); + return AcquireReadableStreamAsyncIterator( + this, + options.preventCancel + ); + } } - } - Object.defineProperties(ReadableStream.prototype, { - cancel: { enumerable: true }, - getReader: { enumerable: true }, - pipeThrough: { enumerable: true }, - pipeTo: { enumerable: true }, - tee: { enumerable: true }, - values: { enumerable: true }, - locked: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.toStringTag, { - value: 'ReadableStream', - configurable: true + Object.defineProperties(ReadableStream.prototype, { + cancel: { enumerable: true }, + getReader: { enumerable: true }, + pipeThrough: { enumerable: true }, + pipeTo: { enumerable: true }, + tee: { enumerable: true }, + values: { enumerable: true }, + locked: { enumerable: true }, }); - } - if (typeof SymbolPolyfill.asyncIterator === 'symbol') { - Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, { - value: ReadableStream.prototype.values, - writable: true, - configurable: true - }); - } - // Abstract operations for the ReadableStream. - // Throws if and only if startAlgorithm throws. - function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark = 1, sizeAlgorithm = () => 1) { - const stream = Object.create(ReadableStream.prototype); - InitializeReadableStream(stream); - const controller = Object.create(ReadableStreamDefaultController.prototype); - SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm); - return stream; - } - // Throws if and only if startAlgorithm throws. - function CreateReadableByteStream(startAlgorithm, pullAlgorithm, cancelAlgorithm) { - const stream = Object.create(ReadableStream.prototype); - InitializeReadableStream(stream); - const controller = Object.create(ReadableByteStreamController.prototype); - SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, 0, undefined); - return stream; - } - function InitializeReadableStream(stream) { - stream._state = 'readable'; - stream._reader = undefined; - stream._storedError = undefined; - stream._disturbed = false; - } - function IsReadableStream(x) { - if (!typeIsObject(x)) { - return false; + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + ReadableStream.prototype, + SymbolPolyfill.toStringTag, + { + value: "ReadableStream", + configurable: true, + } + ); } - if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { - return false; + if (typeof SymbolPolyfill.asyncIterator === "symbol") { + Object.defineProperty( + ReadableStream.prototype, + SymbolPolyfill.asyncIterator, + { + value: ReadableStream.prototype.values, + writable: true, + configurable: true, + } + ); } - return x instanceof ReadableStream; - } - function IsReadableStreamLocked(stream) { - if (stream._reader === undefined) { - return false; + // Abstract operations for the ReadableStream. + // Throws if and only if startAlgorithm throws. + function CreateReadableStream( + startAlgorithm, + pullAlgorithm, + cancelAlgorithm, + highWaterMark = 1, + sizeAlgorithm = () => 1 + ) { + const stream = Object.create(ReadableStream.prototype); + InitializeReadableStream(stream); + const controller = Object.create( + ReadableStreamDefaultController.prototype + ); + SetUpReadableStreamDefaultController( + stream, + controller, + startAlgorithm, + pullAlgorithm, + cancelAlgorithm, + highWaterMark, + sizeAlgorithm + ); + return stream; } - return true; - } - // ReadableStream API exposed for controllers. - function ReadableStreamCancel(stream, reason) { - stream._disturbed = true; - if (stream._state === 'closed') { + // Throws if and only if startAlgorithm throws. + function CreateReadableByteStream( + startAlgorithm, + pullAlgorithm, + cancelAlgorithm + ) { + const stream = Object.create(ReadableStream.prototype); + InitializeReadableStream(stream); + const controller = Object.create( + ReadableByteStreamController.prototype + ); + SetUpReadableByteStreamController( + stream, + controller, + startAlgorithm, + pullAlgorithm, + cancelAlgorithm, + 0, + undefined + ); + return stream; + } + function InitializeReadableStream(stream) { + stream._state = "readable"; + stream._reader = undefined; + stream._storedError = undefined; + stream._disturbed = false; + } + function IsReadableStream(x) { + if (!typeIsObject(x)) { + return false; + } + if ( + !Object.prototype.hasOwnProperty.call( + x, + "_readableStreamController" + ) + ) { + return false; + } + return x instanceof ReadableStream; + } + function IsReadableStreamLocked(stream) { + if (stream._reader === undefined) { + return false; + } + return true; + } + // ReadableStream API exposed for controllers. + function ReadableStreamCancel(stream, reason) { + stream._disturbed = true; + if (stream._state === "closed") { return promiseResolvedWith(undefined); - } - if (stream._state === 'errored') { + } + if (stream._state === "errored") { return promiseRejectedWith(stream._storedError); - } - ReadableStreamClose(stream); - const reader = stream._reader; - if (reader !== undefined && IsReadableStreamBYOBReader(reader)) { - reader._readIntoRequests.forEach(readIntoRequest => { - readIntoRequest._closeSteps(undefined); + } + ReadableStreamClose(stream); + const reader = stream._reader; + if (reader !== undefined && IsReadableStreamBYOBReader(reader)) { + reader._readIntoRequests.forEach((readIntoRequest) => { + readIntoRequest._closeSteps(undefined); }); reader._readIntoRequests = new SimpleQueue(); + } + const sourceCancelPromise = + stream._readableStreamController[CancelSteps](reason); + return transformPromiseWith(sourceCancelPromise, noop); } - const sourceCancelPromise = stream._readableStreamController[CancelSteps](reason); - return transformPromiseWith(sourceCancelPromise, noop); - } - function ReadableStreamClose(stream) { - stream._state = 'closed'; - const reader = stream._reader; - if (reader === undefined) { + function ReadableStreamClose(stream) { + stream._state = "closed"; + const reader = stream._reader; + if (reader === undefined) { return; - } - defaultReaderClosedPromiseResolve(reader); - if (IsReadableStreamDefaultReader(reader)) { - reader._readRequests.forEach(readRequest => { - readRequest._closeSteps(); + } + defaultReaderClosedPromiseResolve(reader); + if (IsReadableStreamDefaultReader(reader)) { + reader._readRequests.forEach((readRequest) => { + readRequest._closeSteps(); }); reader._readRequests = new SimpleQueue(); + } } - } - function ReadableStreamError(stream, e) { - stream._state = 'errored'; - stream._storedError = e; - const reader = stream._reader; - if (reader === undefined) { + function ReadableStreamError(stream, e) { + stream._state = "errored"; + stream._storedError = e; + const reader = stream._reader; + if (reader === undefined) { return; - } - defaultReaderClosedPromiseReject(reader, e); - if (IsReadableStreamDefaultReader(reader)) { - reader._readRequests.forEach(readRequest => { - readRequest._errorSteps(e); + } + defaultReaderClosedPromiseReject(reader, e); + if (IsReadableStreamDefaultReader(reader)) { + reader._readRequests.forEach((readRequest) => { + readRequest._errorSteps(e); }); reader._readRequests = new SimpleQueue(); - } - else { - reader._readIntoRequests.forEach(readIntoRequest => { - readIntoRequest._errorSteps(e); + } else { + reader._readIntoRequests.forEach((readIntoRequest) => { + readIntoRequest._errorSteps(e); }); reader._readIntoRequests = new SimpleQueue(); + } + } + // Helper functions for the ReadableStream. + function streamBrandCheckException$1(name) { + return new TypeError( + `ReadableStream.prototype.${name} can only be used on a ReadableStream` + ); } - } - // Helper functions for the ReadableStream. - function streamBrandCheckException$1(name) { - return new TypeError(`ReadableStream.prototype.${name} can only be used on a ReadableStream`); - } - function convertQueuingStrategyInit(init, context) { - assertDictionary(init, context); - const highWaterMark = init === null || init === void 0 ? void 0 : init.highWaterMark; - assertRequiredField(highWaterMark, 'highWaterMark', 'QueuingStrategyInit'); - return { - highWaterMark: convertUnrestrictedDouble(highWaterMark) + function convertQueuingStrategyInit(init, context) { + assertDictionary(init, context); + const highWaterMark = + init === null || init === void 0 ? void 0 : init.highWaterMark; + assertRequiredField( + highWaterMark, + "highWaterMark", + "QueuingStrategyInit" + ); + return { + highWaterMark: convertUnrestrictedDouble(highWaterMark), + }; + } + + // The size function must not have a prototype property nor be a constructor + const byteLengthSizeFunction = (chunk) => { + return chunk.byteLength; }; - } - - // The size function must not have a prototype property nor be a constructor - const byteLengthSizeFunction = (chunk) => { - return chunk.byteLength; - }; - try { - Object.defineProperty(byteLengthSizeFunction, 'name', { - value: 'size', - configurable: true - }); - } - catch (_a) { - // This property is non-configurable in older browsers, so ignore if this throws. - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility - } - /** - * A queuing strategy that counts the number of bytes in each chunk. - * - * @public - */ - class ByteLengthQueuingStrategy { - constructor(options) { - assertRequiredArgument(options, 1, 'ByteLengthQueuingStrategy'); - options = convertQueuingStrategyInit(options, 'First parameter'); - this._byteLengthQueuingStrategyHighWaterMark = options.highWaterMark; + try { + Object.defineProperty(byteLengthSizeFunction, "name", { + value: "size", + configurable: true, + }); + } catch (_a) { + // This property is non-configurable in older browsers, so ignore if this throws. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility } /** - * Returns the high water mark provided to the constructor. + * A queuing strategy that counts the number of bytes in each chunk. + * + * @public */ - get highWaterMark() { + class ByteLengthQueuingStrategy { + constructor(options) { + assertRequiredArgument(options, 1, "ByteLengthQueuingStrategy"); + options = convertQueuingStrategyInit(options, "First parameter"); + this._byteLengthQueuingStrategyHighWaterMark = + options.highWaterMark; + } + /** + * Returns the high water mark provided to the constructor. + */ + get highWaterMark() { if (!IsByteLengthQueuingStrategy(this)) { - throw byteLengthBrandCheckException('highWaterMark'); + throw byteLengthBrandCheckException("highWaterMark"); } return this._byteLengthQueuingStrategyHighWaterMark; - } - /** - * Measures the size of `chunk` by returning the value of its `byteLength` property. - */ - get size() { + } + /** + * Measures the size of `chunk` by returning the value of its `byteLength` property. + */ + get size() { if (!IsByteLengthQueuingStrategy(this)) { - throw byteLengthBrandCheckException('size'); + throw byteLengthBrandCheckException("size"); } return byteLengthSizeFunction; + } } - } - Object.defineProperties(ByteLengthQueuingStrategy.prototype, { - highWaterMark: { enumerable: true }, - size: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(ByteLengthQueuingStrategy.prototype, SymbolPolyfill.toStringTag, { - value: 'ByteLengthQueuingStrategy', - configurable: true + Object.defineProperties(ByteLengthQueuingStrategy.prototype, { + highWaterMark: { enumerable: true }, + size: { enumerable: true }, }); - } - // Helper functions for the ByteLengthQueuingStrategy. - function byteLengthBrandCheckException(name) { - return new TypeError(`ByteLengthQueuingStrategy.prototype.${name} can only be used on a ByteLengthQueuingStrategy`); - } - function IsByteLengthQueuingStrategy(x) { - if (!typeIsObject(x)) { - return false; + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + ByteLengthQueuingStrategy.prototype, + SymbolPolyfill.toStringTag, + { + value: "ByteLengthQueuingStrategy", + configurable: true, + } + ); } - if (!Object.prototype.hasOwnProperty.call(x, '_byteLengthQueuingStrategyHighWaterMark')) { - return false; + // Helper functions for the ByteLengthQueuingStrategy. + function byteLengthBrandCheckException(name) { + return new TypeError( + `ByteLengthQueuingStrategy.prototype.${name} can only be used on a ByteLengthQueuingStrategy` + ); + } + function IsByteLengthQueuingStrategy(x) { + if (!typeIsObject(x)) { + return false; + } + if ( + !Object.prototype.hasOwnProperty.call( + x, + "_byteLengthQueuingStrategyHighWaterMark" + ) + ) { + return false; + } + return x instanceof ByteLengthQueuingStrategy; } - return x instanceof ByteLengthQueuingStrategy; - } - // The size function must not have a prototype property nor be a constructor - const countSizeFunction = () => { - return 1; - }; - try { - Object.defineProperty(countSizeFunction, 'name', { - value: 'size', - configurable: true - }); - } - catch (_a) { - // This property is non-configurable in older browsers, so ignore if this throws. - // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility - } - /** - * A queuing strategy that counts the number of chunks. - * - * @public - */ - class CountQueuingStrategy { - constructor(options) { - assertRequiredArgument(options, 1, 'CountQueuingStrategy'); - options = convertQueuingStrategyInit(options, 'First parameter'); - this._countQueuingStrategyHighWaterMark = options.highWaterMark; + // The size function must not have a prototype property nor be a constructor + const countSizeFunction = () => { + return 1; + }; + try { + Object.defineProperty(countSizeFunction, "name", { + value: "size", + configurable: true, + }); + } catch (_a) { + // This property is non-configurable in older browsers, so ignore if this throws. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name#browser_compatibility } /** - * Returns the high water mark provided to the constructor. + * A queuing strategy that counts the number of chunks. + * + * @public */ - get highWaterMark() { + class CountQueuingStrategy { + constructor(options) { + assertRequiredArgument(options, 1, "CountQueuingStrategy"); + options = convertQueuingStrategyInit(options, "First parameter"); + this._countQueuingStrategyHighWaterMark = options.highWaterMark; + } + /** + * Returns the high water mark provided to the constructor. + */ + get highWaterMark() { if (!IsCountQueuingStrategy(this)) { - throw countBrandCheckException('highWaterMark'); + throw countBrandCheckException("highWaterMark"); } return this._countQueuingStrategyHighWaterMark; - } - /** - * Measures the size of `chunk` by always returning 1. - * This ensures that the total queue size is a count of the number of chunks in the queue. - */ - get size() { + } + /** + * Measures the size of `chunk` by always returning 1. + * This ensures that the total queue size is a count of the number of chunks in the queue. + */ + get size() { if (!IsCountQueuingStrategy(this)) { - throw countBrandCheckException('size'); + throw countBrandCheckException("size"); } return countSizeFunction; + } } - } - Object.defineProperties(CountQueuingStrategy.prototype, { - highWaterMark: { enumerable: true }, - size: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(CountQueuingStrategy.prototype, SymbolPolyfill.toStringTag, { - value: 'CountQueuingStrategy', - configurable: true + Object.defineProperties(CountQueuingStrategy.prototype, { + highWaterMark: { enumerable: true }, + size: { enumerable: true }, }); - } - // Helper functions for the CountQueuingStrategy. - function countBrandCheckException(name) { - return new TypeError(`CountQueuingStrategy.prototype.${name} can only be used on a CountQueuingStrategy`); - } - function IsCountQueuingStrategy(x) { - if (!typeIsObject(x)) { - return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_countQueuingStrategyHighWaterMark')) { - return false; - } - return x instanceof CountQueuingStrategy; - } - - function convertTransformer(original, context) { - assertDictionary(original, context); - const flush = original === null || original === void 0 ? void 0 : original.flush; - const readableType = original === null || original === void 0 ? void 0 : original.readableType; - const start = original === null || original === void 0 ? void 0 : original.start; - const transform = original === null || original === void 0 ? void 0 : original.transform; - const writableType = original === null || original === void 0 ? void 0 : original.writableType; - return { - flush: flush === undefined ? - undefined : - convertTransformerFlushCallback(flush, original, `${context} has member 'flush' that`), - readableType, - start: start === undefined ? - undefined : - convertTransformerStartCallback(start, original, `${context} has member 'start' that`), - transform: transform === undefined ? - undefined : - convertTransformerTransformCallback(transform, original, `${context} has member 'transform' that`), - writableType - }; - } - function convertTransformerFlushCallback(fn, original, context) { - assertFunction(fn, context); - return (controller) => promiseCall(fn, original, [controller]); - } - function convertTransformerStartCallback(fn, original, context) { - assertFunction(fn, context); - return (controller) => reflectCall(fn, original, [controller]); - } - function convertTransformerTransformCallback(fn, original, context) { - assertFunction(fn, context); - return (chunk, controller) => promiseCall(fn, original, [chunk, controller]); - } - - // Class TransformStream - /** - * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream}, - * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side. - * In a manner specific to the transform stream in question, writes to the writable side result in new data being - * made available for reading from the readable side. - * - * @public - */ - class TransformStream { - constructor(rawTransformer = {}, rawWritableStrategy = {}, rawReadableStrategy = {}) { - if (rawTransformer === undefined) { - rawTransformer = null; + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + CountQueuingStrategy.prototype, + SymbolPolyfill.toStringTag, + { + value: "CountQueuingStrategy", + configurable: true, } - const writableStrategy = convertQueuingStrategy(rawWritableStrategy, 'Second parameter'); - const readableStrategy = convertQueuingStrategy(rawReadableStrategy, 'Third parameter'); - const transformer = convertTransformer(rawTransformer, 'First parameter'); + ); + } + // Helper functions for the CountQueuingStrategy. + function countBrandCheckException(name) { + return new TypeError( + `CountQueuingStrategy.prototype.${name} can only be used on a CountQueuingStrategy` + ); + } + function IsCountQueuingStrategy(x) { + if (!typeIsObject(x)) { + return false; + } + if ( + !Object.prototype.hasOwnProperty.call( + x, + "_countQueuingStrategyHighWaterMark" + ) + ) { + return false; + } + return x instanceof CountQueuingStrategy; + } + + function convertTransformer(original, context) { + assertDictionary(original, context); + const flush = + original === null || original === void 0 ? void 0 : original.flush; + const readableType = + original === null || original === void 0 + ? void 0 + : original.readableType; + const start = + original === null || original === void 0 ? void 0 : original.start; + const transform = + original === null || original === void 0 + ? void 0 + : original.transform; + const writableType = + original === null || original === void 0 + ? void 0 + : original.writableType; + return { + flush: + flush === undefined + ? undefined + : convertTransformerFlushCallback( + flush, + original, + `${context} has member 'flush' that` + ), + readableType, + start: + start === undefined + ? undefined + : convertTransformerStartCallback( + start, + original, + `${context} has member 'start' that` + ), + transform: + transform === undefined + ? undefined + : convertTransformerTransformCallback( + transform, + original, + `${context} has member 'transform' that` + ), + writableType, + }; + } + function convertTransformerFlushCallback(fn, original, context) { + assertFunction(fn, context); + return (controller) => promiseCall(fn, original, [controller]); + } + function convertTransformerStartCallback(fn, original, context) { + assertFunction(fn, context); + return (controller) => reflectCall(fn, original, [controller]); + } + function convertTransformerTransformCallback(fn, original, context) { + assertFunction(fn, context); + return (chunk, controller) => + promiseCall(fn, original, [chunk, controller]); + } + + // Class TransformStream + /** + * A transform stream consists of a pair of streams: a {@link WritableStream | writable stream}, + * known as its writable side, and a {@link ReadableStream | readable stream}, known as its readable side. + * In a manner specific to the transform stream in question, writes to the writable side result in new data being + * made available for reading from the readable side. + * + * @public + */ + class TransformStream { + constructor( + rawTransformer = {}, + rawWritableStrategy = {}, + rawReadableStrategy = {} + ) { + if (rawTransformer === undefined) { + rawTransformer = null; + } + const writableStrategy = convertQueuingStrategy( + rawWritableStrategy, + "Second parameter" + ); + const readableStrategy = convertQueuingStrategy( + rawReadableStrategy, + "Third parameter" + ); + const transformer = convertTransformer( + rawTransformer, + "First parameter" + ); if (transformer.readableType !== undefined) { - throw new RangeError('Invalid readableType specified'); + throw new RangeError("Invalid readableType specified"); } if (transformer.writableType !== undefined) { - throw new RangeError('Invalid writableType specified'); + throw new RangeError("Invalid writableType specified"); } - const readableHighWaterMark = ExtractHighWaterMark(readableStrategy, 0); - const readableSizeAlgorithm = ExtractSizeAlgorithm(readableStrategy); - const writableHighWaterMark = ExtractHighWaterMark(writableStrategy, 1); - const writableSizeAlgorithm = ExtractSizeAlgorithm(writableStrategy); + const readableHighWaterMark = ExtractHighWaterMark( + readableStrategy, + 0 + ); + const readableSizeAlgorithm = + ExtractSizeAlgorithm(readableStrategy); + const writableHighWaterMark = ExtractHighWaterMark( + writableStrategy, + 1 + ); + const writableSizeAlgorithm = + ExtractSizeAlgorithm(writableStrategy); let startPromise_resolve; - const startPromise = newPromise(resolve => { - startPromise_resolve = resolve; + const startPromise = newPromise((resolve) => { + startPromise_resolve = resolve; }); - InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm); - SetUpTransformStreamDefaultControllerFromTransformer(this, transformer); + InitializeTransformStream( + this, + startPromise, + writableHighWaterMark, + writableSizeAlgorithm, + readableHighWaterMark, + readableSizeAlgorithm + ); + SetUpTransformStreamDefaultControllerFromTransformer( + this, + transformer + ); if (transformer.start !== undefined) { - startPromise_resolve(transformer.start(this._transformStreamController)); + startPromise_resolve( + transformer.start(this._transformStreamController) + ); + } else { + startPromise_resolve(undefined); } - else { - startPromise_resolve(undefined); - } - } - /** - * The readable side of the transform stream. - */ - get readable() { + } + /** + * The readable side of the transform stream. + */ + get readable() { if (!IsTransformStream(this)) { - throw streamBrandCheckException('readable'); + throw streamBrandCheckException("readable"); } return this._readable; - } - /** - * The writable side of the transform stream. - */ - get writable() { + } + /** + * The writable side of the transform stream. + */ + get writable() { if (!IsTransformStream(this)) { - throw streamBrandCheckException('writable'); + throw streamBrandCheckException("writable"); } return this._writable; + } } - } - Object.defineProperties(TransformStream.prototype, { - readable: { enumerable: true }, - writable: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(TransformStream.prototype, SymbolPolyfill.toStringTag, { - value: 'TransformStream', - configurable: true + Object.defineProperties(TransformStream.prototype, { + readable: { enumerable: true }, + writable: { enumerable: true }, }); - } - function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) { - function startAlgorithm() { + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + TransformStream.prototype, + SymbolPolyfill.toStringTag, + { + value: "TransformStream", + configurable: true, + } + ); + } + function InitializeTransformStream( + stream, + startPromise, + writableHighWaterMark, + writableSizeAlgorithm, + readableHighWaterMark, + readableSizeAlgorithm + ) { + function startAlgorithm() { return startPromise; - } - function writeAlgorithm(chunk) { + } + function writeAlgorithm(chunk) { return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk); - } - function abortAlgorithm(reason) { + } + function abortAlgorithm(reason) { return TransformStreamDefaultSinkAbortAlgorithm(stream, reason); - } - function closeAlgorithm() { + } + function closeAlgorithm() { return TransformStreamDefaultSinkCloseAlgorithm(stream); - } - stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm); - function pullAlgorithm() { + } + stream._writable = CreateWritableStream( + startAlgorithm, + writeAlgorithm, + closeAlgorithm, + abortAlgorithm, + writableHighWaterMark, + writableSizeAlgorithm + ); + function pullAlgorithm() { return TransformStreamDefaultSourcePullAlgorithm(stream); - } - function cancelAlgorithm(reason) { + } + function cancelAlgorithm(reason) { TransformStreamErrorWritableAndUnblockWrite(stream, reason); return promiseResolvedWith(undefined); + } + stream._readable = CreateReadableStream( + startAlgorithm, + pullAlgorithm, + cancelAlgorithm, + readableHighWaterMark, + readableSizeAlgorithm + ); + // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure. + stream._backpressure = undefined; + stream._backpressureChangePromise = undefined; + stream._backpressureChangePromise_resolve = undefined; + TransformStreamSetBackpressure(stream, true); + stream._transformStreamController = undefined; } - stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm); - // The [[backpressure]] slot is set to undefined so that it can be initialised by TransformStreamSetBackpressure. - stream._backpressure = undefined; - stream._backpressureChangePromise = undefined; - stream._backpressureChangePromise_resolve = undefined; - TransformStreamSetBackpressure(stream, true); - stream._transformStreamController = undefined; - } - function IsTransformStream(x) { - if (!typeIsObject(x)) { + function IsTransformStream(x) { + if (!typeIsObject(x)) { return false; - } - if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { + } + if ( + !Object.prototype.hasOwnProperty.call( + x, + "_transformStreamController" + ) + ) { return false; + } + return x instanceof TransformStream; } - return x instanceof TransformStream; - } - // This is a no-op if both sides are already errored. - function TransformStreamError(stream, e) { - ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e); - TransformStreamErrorWritableAndUnblockWrite(stream, e); - } - function TransformStreamErrorWritableAndUnblockWrite(stream, e) { - TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController); - WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e); - if (stream._backpressure) { + // This is a no-op if both sides are already errored. + function TransformStreamError(stream, e) { + ReadableStreamDefaultControllerError( + stream._readable._readableStreamController, + e + ); + TransformStreamErrorWritableAndUnblockWrite(stream, e); + } + function TransformStreamErrorWritableAndUnblockWrite(stream, e) { + TransformStreamDefaultControllerClearAlgorithms( + stream._transformStreamController + ); + WritableStreamDefaultControllerErrorIfNeeded( + stream._writable._writableStreamController, + e + ); + if (stream._backpressure) { // Pretend that pull() was called to permit any pending write() calls to complete. TransformStreamSetBackpressure() // cannot be called from enqueue() or pull() once the ReadableStream is errored, so this will will be the final time // _backpressure is set. TransformStreamSetBackpressure(stream, false); + } } - } - function TransformStreamSetBackpressure(stream, backpressure) { - // Passes also when called during construction. - if (stream._backpressureChangePromise !== undefined) { + function TransformStreamSetBackpressure(stream, backpressure) { + // Passes also when called during construction. + if (stream._backpressureChangePromise !== undefined) { stream._backpressureChangePromise_resolve(); - } - stream._backpressureChangePromise = newPromise(resolve => { + } + stream._backpressureChangePromise = newPromise((resolve) => { stream._backpressureChangePromise_resolve = resolve; - }); - stream._backpressure = backpressure; - } - // Class TransformStreamDefaultController - /** - * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}. - * - * @public - */ - class TransformStreamDefaultController { - constructor() { - throw new TypeError('Illegal constructor'); + }); + stream._backpressure = backpressure; } + // Class TransformStreamDefaultController /** - * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full. + * Allows control of the {@link ReadableStream} and {@link WritableStream} of the associated {@link TransformStream}. + * + * @public */ - get desiredSize() { + class TransformStreamDefaultController { + constructor() { + throw new TypeError("Illegal constructor"); + } + /** + * Returns the desired size to fill the readable side’s internal queue. It can be negative, if the queue is over-full. + */ + get desiredSize() { if (!IsTransformStreamDefaultController(this)) { - throw defaultControllerBrandCheckException('desiredSize'); + throw defaultControllerBrandCheckException("desiredSize"); } - const readableController = this._controlledTransformStream._readable._readableStreamController; - return ReadableStreamDefaultControllerGetDesiredSize(readableController); - } - enqueue(chunk = undefined) { + const readableController = + this._controlledTransformStream._readable + ._readableStreamController; + return ReadableStreamDefaultControllerGetDesiredSize( + readableController + ); + } + enqueue(chunk = undefined) { if (!IsTransformStreamDefaultController(this)) { - throw defaultControllerBrandCheckException('enqueue'); + throw defaultControllerBrandCheckException("enqueue"); } TransformStreamDefaultControllerEnqueue(this, chunk); - } - /** - * Errors both the readable side and the writable side of the controlled transform stream, making all future - * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded. - */ - error(reason = undefined) { + } + /** + * Errors both the readable side and the writable side of the controlled transform stream, making all future + * interactions with it fail with the given error `e`. Any chunks queued for transformation will be discarded. + */ + error(reason = undefined) { if (!IsTransformStreamDefaultController(this)) { - throw defaultControllerBrandCheckException('error'); + throw defaultControllerBrandCheckException("error"); } TransformStreamDefaultControllerError(this, reason); - } - /** - * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the - * transformer only needs to consume a portion of the chunks written to the writable side. - */ - terminate() { + } + /** + * Closes the readable side and errors the writable side of the controlled transform stream. This is useful when the + * transformer only needs to consume a portion of the chunks written to the writable side. + */ + terminate() { if (!IsTransformStreamDefaultController(this)) { - throw defaultControllerBrandCheckException('terminate'); + throw defaultControllerBrandCheckException("terminate"); } TransformStreamDefaultControllerTerminate(this); + } } - } - Object.defineProperties(TransformStreamDefaultController.prototype, { - enqueue: { enumerable: true }, - error: { enumerable: true }, - terminate: { enumerable: true }, - desiredSize: { enumerable: true } - }); - if (typeof SymbolPolyfill.toStringTag === 'symbol') { - Object.defineProperty(TransformStreamDefaultController.prototype, SymbolPolyfill.toStringTag, { - value: 'TransformStreamDefaultController', - configurable: true + Object.defineProperties(TransformStreamDefaultController.prototype, { + enqueue: { enumerable: true }, + error: { enumerable: true }, + terminate: { enumerable: true }, + desiredSize: { enumerable: true }, }); - } - // Transform Stream Default Controller Abstract Operations - function IsTransformStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; + if (typeof SymbolPolyfill.toStringTag === "symbol") { + Object.defineProperty( + TransformStreamDefaultController.prototype, + SymbolPolyfill.toStringTag, + { + value: "TransformStreamDefaultController", + configurable: true, + } + ); } - if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { + // Transform Stream Default Controller Abstract Operations + function IsTransformStreamDefaultController(x) { + if (!typeIsObject(x)) { return false; + } + if ( + !Object.prototype.hasOwnProperty.call( + x, + "_controlledTransformStream" + ) + ) { + return false; + } + return x instanceof TransformStreamDefaultController; } - return x instanceof TransformStreamDefaultController; - } - function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) { - controller._controlledTransformStream = stream; - stream._transformStreamController = controller; - controller._transformAlgorithm = transformAlgorithm; - controller._flushAlgorithm = flushAlgorithm; - } - function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) { - const controller = Object.create(TransformStreamDefaultController.prototype); - let transformAlgorithm = (chunk) => { + function SetUpTransformStreamDefaultController( + stream, + controller, + transformAlgorithm, + flushAlgorithm + ) { + controller._controlledTransformStream = stream; + stream._transformStreamController = controller; + controller._transformAlgorithm = transformAlgorithm; + controller._flushAlgorithm = flushAlgorithm; + } + function SetUpTransformStreamDefaultControllerFromTransformer( + stream, + transformer + ) { + const controller = Object.create( + TransformStreamDefaultController.prototype + ); + let transformAlgorithm = (chunk) => { try { - TransformStreamDefaultControllerEnqueue(controller, chunk); - return promiseResolvedWith(undefined); + TransformStreamDefaultControllerEnqueue(controller, chunk); + return promiseResolvedWith(undefined); + } catch (transformResultE) { + return promiseRejectedWith(transformResultE); } - catch (transformResultE) { - return promiseRejectedWith(transformResultE); - } - }; - let flushAlgorithm = () => promiseResolvedWith(undefined); - if (transformer.transform !== undefined) { - transformAlgorithm = chunk => transformer.transform(chunk, controller); - } - if (transformer.flush !== undefined) { + }; + let flushAlgorithm = () => promiseResolvedWith(undefined); + if (transformer.transform !== undefined) { + transformAlgorithm = (chunk) => + transformer.transform(chunk, controller); + } + if (transformer.flush !== undefined) { flushAlgorithm = () => transformer.flush(controller); + } + SetUpTransformStreamDefaultController( + stream, + controller, + transformAlgorithm, + flushAlgorithm + ); } - SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm); - } - function TransformStreamDefaultControllerClearAlgorithms(controller) { - controller._transformAlgorithm = undefined; - controller._flushAlgorithm = undefined; - } - function TransformStreamDefaultControllerEnqueue(controller, chunk) { - const stream = controller._controlledTransformStream; - const readableController = stream._readable._readableStreamController; - if (!ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController)) { - throw new TypeError('Readable side is not in a state that permits enqueue'); + function TransformStreamDefaultControllerClearAlgorithms(controller) { + controller._transformAlgorithm = undefined; + controller._flushAlgorithm = undefined; } - // We throttle transform invocations based on the backpressure of the ReadableStream, but we still - // accept TransformStreamDefaultControllerEnqueue() calls. - try { + function TransformStreamDefaultControllerEnqueue(controller, chunk) { + const stream = controller._controlledTransformStream; + const readableController = stream._readable._readableStreamController; + if ( + !ReadableStreamDefaultControllerCanCloseOrEnqueue( + readableController + ) + ) { + throw new TypeError( + "Readable side is not in a state that permits enqueue" + ); + } + // We throttle transform invocations based on the backpressure of the ReadableStream, but we still + // accept TransformStreamDefaultControllerEnqueue() calls. + try { ReadableStreamDefaultControllerEnqueue(readableController, chunk); - } - catch (e) { + } catch (e) { // This happens when readableStrategy.size() throws. TransformStreamErrorWritableAndUnblockWrite(stream, e); throw stream._readable._storedError; - } - const backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController); - if (backpressure !== stream._backpressure) { + } + const backpressure = + ReadableStreamDefaultControllerHasBackpressure(readableController); + if (backpressure !== stream._backpressure) { TransformStreamSetBackpressure(stream, true); + } } - } - function TransformStreamDefaultControllerError(controller, e) { - TransformStreamError(controller._controlledTransformStream, e); - } - function TransformStreamDefaultControllerPerformTransform(controller, chunk) { - const transformPromise = controller._transformAlgorithm(chunk); - return transformPromiseWith(transformPromise, undefined, r => { + function TransformStreamDefaultControllerError(controller, e) { + TransformStreamError(controller._controlledTransformStream, e); + } + function TransformStreamDefaultControllerPerformTransform( + controller, + chunk + ) { + const transformPromise = controller._transformAlgorithm(chunk); + return transformPromiseWith(transformPromise, undefined, (r) => { TransformStreamError(controller._controlledTransformStream, r); throw r; - }); - } - function TransformStreamDefaultControllerTerminate(controller) { - const stream = controller._controlledTransformStream; - const readableController = stream._readable._readableStreamController; - ReadableStreamDefaultControllerClose(readableController); - const error = new TypeError('TransformStream terminated'); - TransformStreamErrorWritableAndUnblockWrite(stream, error); - } - // TransformStreamDefaultSink Algorithms - function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) { - const controller = stream._transformStreamController; - if (stream._backpressure) { + }); + } + function TransformStreamDefaultControllerTerminate(controller) { + const stream = controller._controlledTransformStream; + const readableController = stream._readable._readableStreamController; + ReadableStreamDefaultControllerClose(readableController); + const error = new TypeError("TransformStream terminated"); + TransformStreamErrorWritableAndUnblockWrite(stream, error); + } + // TransformStreamDefaultSink Algorithms + function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) { + const controller = stream._transformStreamController; + if (stream._backpressure) { const backpressureChangePromise = stream._backpressureChangePromise; return transformPromiseWith(backpressureChangePromise, () => { - const writable = stream._writable; - const state = writable._state; - if (state === 'erroring') { - throw writable._storedError; - } - return TransformStreamDefaultControllerPerformTransform(controller, chunk); + const writable = stream._writable; + const state = writable._state; + if (state === "erroring") { + throw writable._storedError; + } + return TransformStreamDefaultControllerPerformTransform( + controller, + chunk + ); }); + } + return TransformStreamDefaultControllerPerformTransform( + controller, + chunk + ); } - return TransformStreamDefaultControllerPerformTransform(controller, chunk); - } - function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) { - // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already - // errored. - TransformStreamError(stream, reason); - return promiseResolvedWith(undefined); - } - function TransformStreamDefaultSinkCloseAlgorithm(stream) { - // stream._readable cannot change after construction, so caching it across a call to user code is safe. - const readable = stream._readable; - const controller = stream._transformStreamController; - const flushPromise = controller._flushAlgorithm(); - TransformStreamDefaultControllerClearAlgorithms(controller); - // Return a promise that is fulfilled with undefined on success. - return transformPromiseWith(flushPromise, () => { - if (readable._state === 'errored') { + function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) { + // abort() is not called synchronously, so it is possible for abort() to be called when the stream is already + // errored. + TransformStreamError(stream, reason); + return promiseResolvedWith(undefined); + } + function TransformStreamDefaultSinkCloseAlgorithm(stream) { + // stream._readable cannot change after construction, so caching it across a call to user code is safe. + const readable = stream._readable; + const controller = stream._transformStreamController; + const flushPromise = controller._flushAlgorithm(); + TransformStreamDefaultControllerClearAlgorithms(controller); + // Return a promise that is fulfilled with undefined on success. + return transformPromiseWith( + flushPromise, + () => { + if (readable._state === "errored") { throw readable._storedError; + } + ReadableStreamDefaultControllerClose( + readable._readableStreamController + ); + }, + (r) => { + TransformStreamError(stream, r); + throw readable._storedError; } - ReadableStreamDefaultControllerClose(readable._readableStreamController); - }, r => { - TransformStreamError(stream, r); - throw readable._storedError; - }); - } - // TransformStreamDefaultSource Algorithms - function TransformStreamDefaultSourcePullAlgorithm(stream) { - // Invariant. Enforced by the promises returned by start() and pull(). - TransformStreamSetBackpressure(stream, false); - // Prevent the next pull() call until there is backpressure. - return stream._backpressureChangePromise; - } - // Helper functions for the TransformStreamDefaultController. - function defaultControllerBrandCheckException(name) { - return new TypeError(`TransformStreamDefaultController.prototype.${name} can only be used on a TransformStreamDefaultController`); - } - // Helper functions for the TransformStream. - function streamBrandCheckException(name) { - return new TypeError(`TransformStream.prototype.${name} can only be used on a TransformStream`); - } + ); + } + // TransformStreamDefaultSource Algorithms + function TransformStreamDefaultSourcePullAlgorithm(stream) { + // Invariant. Enforced by the promises returned by start() and pull(). + TransformStreamSetBackpressure(stream, false); + // Prevent the next pull() call until there is backpressure. + return stream._backpressureChangePromise; + } + // Helper functions for the TransformStreamDefaultController. + function defaultControllerBrandCheckException(name) { + return new TypeError( + `TransformStreamDefaultController.prototype.${name} can only be used on a TransformStreamDefaultController` + ); + } + // Helper functions for the TransformStream. + function streamBrandCheckException(name) { + return new TypeError( + `TransformStream.prototype.${name} can only be used on a TransformStream` + ); + } - exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy; - exports.CountQueuingStrategy = CountQueuingStrategy; - exports.ReadableByteStreamController = ReadableByteStreamController; - exports.ReadableStream = ReadableStream; - exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader; - exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest; - exports.ReadableStreamDefaultController = ReadableStreamDefaultController; - exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader; - exports.TransformStream = TransformStream; - exports.TransformStreamDefaultController = TransformStreamDefaultController; - exports.WritableStream = WritableStream; - exports.WritableStreamDefaultController = WritableStreamDefaultController; - exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter; + exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy; + exports.CountQueuingStrategy = CountQueuingStrategy; + exports.ReadableByteStreamController = ReadableByteStreamController; + exports.ReadableStream = ReadableStream; + exports.ReadableStreamBYOBReader = ReadableStreamBYOBReader; + exports.ReadableStreamBYOBRequest = ReadableStreamBYOBRequest; + exports.ReadableStreamDefaultController = + ReadableStreamDefaultController; + exports.ReadableStreamDefaultReader = ReadableStreamDefaultReader; + exports.TransformStream = TransformStream; + exports.TransformStreamDefaultController = + TransformStreamDefaultController; + exports.WritableStream = WritableStream; + exports.WritableStreamDefaultController = + WritableStreamDefaultController; + exports.WritableStreamDefaultWriter = WritableStreamDefaultWriter; - Object.defineProperty(exports, '__esModule', { value: true }); + Object.defineProperty(exports, "__esModule", { value: true }); + }); + //# sourceMappingURL=ponyfill.es2018.js.map -}))); -//# sourceMappingURL=ponyfill.es2018.js.map + /***/ + }, + /***/ 4886: /***/ (module) => { + "use strict"; -/***/ }), + var conversions = {}; + module.exports = conversions; -/***/ 4886: -/***/ ((module) => { + function sign(x) { + return x < 0 ? -1 : 1; + } -"use strict"; + function evenRound(x) { + // Round x to the nearest integer, choosing the even integer if it lies halfway between two. + if (x % 1 === 0.5 && (x & 1) === 0) { + // [even number].5; round down (i.e. floor) + return Math.floor(x); + } else { + return Math.round(x); + } + } + function createNumberConversion(bitLength, typeOpts) { + if (!typeOpts.unsigned) { + --bitLength; + } + const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); + const upperBound = Math.pow(2, bitLength) - 1; -var conversions = {}; -module.exports = conversions; + const moduloVal = typeOpts.moduloBitLength + ? Math.pow(2, typeOpts.moduloBitLength) + : Math.pow(2, bitLength); + const moduloBound = typeOpts.moduloBitLength + ? Math.pow(2, typeOpts.moduloBitLength - 1) + : Math.pow(2, bitLength - 1); -function sign(x) { - return x < 0 ? -1 : 1; -} + return function (V, opts) { + if (!opts) opts = {}; -function evenRound(x) { - // Round x to the nearest integer, choosing the even integer if it lies halfway between two. - if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor) - return Math.floor(x); - } else { - return Math.round(x); - } -} + let x = +V; -function createNumberConversion(bitLength, typeOpts) { - if (!typeOpts.unsigned) { - --bitLength; - } - const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); - const upperBound = Math.pow(2, bitLength) - 1; - - const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength); - const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1); - - return function(V, opts) { - if (!opts) opts = {}; - - let x = +V; - - if (opts.enforceRange) { + if (opts.enforceRange) { if (!Number.isFinite(x)) { - throw new TypeError("Argument is not a finite number"); + throw new TypeError("Argument is not a finite number"); } x = sign(x) * Math.floor(Math.abs(x)); if (x < lowerBound || x > upperBound) { - throw new TypeError("Argument is not in byte range"); + throw new TypeError("Argument is not in byte range"); } return x; - } + } - if (!isNaN(x) && opts.clamp) { + if (!isNaN(x) && opts.clamp) { x = evenRound(x); if (x < lowerBound) x = lowerBound; if (x > upperBound) x = upperBound; return x; - } + } - if (!Number.isFinite(x) || x === 0) { + if (!Number.isFinite(x) || x === 0) { return 0; - } + } - x = sign(x) * Math.floor(Math.abs(x)); - x = x % moduloVal; + x = sign(x) * Math.floor(Math.abs(x)); + x = x % moduloVal; - if (!typeOpts.unsigned && x >= moduloBound) { + if (!typeOpts.unsigned && x >= moduloBound) { return x - moduloVal; - } else if (typeOpts.unsigned) { + } else if (typeOpts.unsigned) { if (x < 0) { x += moduloVal; - } else if (x === -0) { // don't return negative zero + } else if (x === -0) { + // don't return negative zero return 0; } + } + + return x; + }; + } + + conversions["void"] = function () { + return undefined; + }; + + conversions["boolean"] = function (val) { + return !!val; + }; + + conversions["byte"] = createNumberConversion(8, { unsigned: false }); + conversions["octet"] = createNumberConversion(8, { unsigned: true }); + + conversions["short"] = createNumberConversion(16, { unsigned: false }); + conversions["unsigned short"] = createNumberConversion(16, { + unsigned: true, + }); + + conversions["long"] = createNumberConversion(32, { unsigned: false }); + conversions["unsigned long"] = createNumberConversion(32, { + unsigned: true, + }); + + conversions["long long"] = createNumberConversion(32, { + unsigned: false, + moduloBitLength: 64, + }); + conversions["unsigned long long"] = createNumberConversion(32, { + unsigned: true, + moduloBitLength: 64, + }); + + conversions["double"] = function (V) { + const x = +V; + + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite floating-point value"); } return x; - } -} + }; -conversions["void"] = function () { - return undefined; -}; + conversions["unrestricted double"] = function (V) { + const x = +V; -conversions["boolean"] = function (val) { - return !!val; -}; + if (isNaN(x)) { + throw new TypeError("Argument is NaN"); + } -conversions["byte"] = createNumberConversion(8, { unsigned: false }); -conversions["octet"] = createNumberConversion(8, { unsigned: true }); + return x; + }; -conversions["short"] = createNumberConversion(16, { unsigned: false }); -conversions["unsigned short"] = createNumberConversion(16, { unsigned: true }); + // not quite valid, but good enough for JS + conversions["float"] = conversions["double"]; + conversions["unrestricted float"] = conversions["unrestricted double"]; -conversions["long"] = createNumberConversion(32, { unsigned: false }); -conversions["unsigned long"] = createNumberConversion(32, { unsigned: true }); + conversions["DOMString"] = function (V, opts) { + if (!opts) opts = {}; -conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 }); -conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 }); + if (opts.treatNullAsEmptyString && V === null) { + return ""; + } -conversions["double"] = function (V) { - const x = +V; + return String(V); + }; - if (!Number.isFinite(x)) { - throw new TypeError("Argument is not a finite floating-point value"); - } - - return x; -}; - -conversions["unrestricted double"] = function (V) { - const x = +V; - - if (isNaN(x)) { - throw new TypeError("Argument is NaN"); - } - - return x; -}; - -// not quite valid, but good enough for JS -conversions["float"] = conversions["double"]; -conversions["unrestricted float"] = conversions["unrestricted double"]; - -conversions["DOMString"] = function (V, opts) { - if (!opts) opts = {}; - - if (opts.treatNullAsEmptyString && V === null) { - return ""; - } - - return String(V); -}; - -conversions["ByteString"] = function (V, opts) { - const x = String(V); - let c = undefined; - for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) { - if (c > 255) { + conversions["ByteString"] = function (V, opts) { + const x = String(V); + let c = undefined; + for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) { + if (c > 255) { throw new TypeError("Argument is not a valid bytestring"); - } - } - - return x; -}; - -conversions["USVString"] = function (V) { - const S = String(V); - const n = S.length; - const U = []; - for (let i = 0; i < n; ++i) { - const c = S.charCodeAt(i); - if (c < 0xD800 || c > 0xDFFF) { - U.push(String.fromCodePoint(c)); - } else if (0xDC00 <= c && c <= 0xDFFF) { - U.push(String.fromCodePoint(0xFFFD)); - } else { - if (i === n - 1) { - U.push(String.fromCodePoint(0xFFFD)); - } else { - const d = S.charCodeAt(i + 1); - if (0xDC00 <= d && d <= 0xDFFF) { - const a = c & 0x3FF; - const b = d & 0x3FF; - U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); - ++i; - } else { - U.push(String.fromCodePoint(0xFFFD)); - } - } - } - } - - return U.join(''); -}; - -conversions["Date"] = function (V, opts) { - if (!(V instanceof Date)) { - throw new TypeError("Argument is not a Date object"); - } - if (isNaN(V)) { - return undefined; - } - - return V; -}; - -conversions["RegExp"] = function (V, opts) { - if (!(V instanceof RegExp)) { - V = new RegExp(V); - } - - return V; -}; - - -/***/ }), - -/***/ 7537: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -const usm = __nccwpck_require__(2158); - -exports.implementation = class URLImpl { - constructor(constructorArgs) { - const url = constructorArgs[0]; - const base = constructorArgs[1]; - - let parsedBase = null; - if (base !== undefined) { - parsedBase = usm.basicURLParse(base); - if (parsedBase === "failure") { - throw new TypeError("Invalid base URL"); - } - } - - const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); - if (parsedURL === "failure") { - throw new TypeError("Invalid URL"); - } - - this._url = parsedURL; - - // TODO: query stuff - } - - get href() { - return usm.serializeURL(this._url); - } - - set href(v) { - const parsedURL = usm.basicURLParse(v); - if (parsedURL === "failure") { - throw new TypeError("Invalid URL"); - } - - this._url = parsedURL; - } - - get origin() { - return usm.serializeURLOrigin(this._url); - } - - get protocol() { - return this._url.scheme + ":"; - } - - set protocol(v) { - usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" }); - } - - get username() { - return this._url.username; - } - - set username(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - usm.setTheUsername(this._url, v); - } - - get password() { - return this._url.password; - } - - set password(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - usm.setThePassword(this._url, v); - } - - get host() { - const url = this._url; - - if (url.host === null) { - return ""; - } - - if (url.port === null) { - return usm.serializeHost(url.host); - } - - return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port); - } - - set host(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); - } - - get hostname() { - if (this._url.host === null) { - return ""; - } - - return usm.serializeHost(this._url.host); - } - - set hostname(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); - } - - get port() { - if (this._url.port === null) { - return ""; - } - - return usm.serializeInteger(this._url.port); - } - - set port(v) { - if (usm.cannotHaveAUsernamePasswordPort(this._url)) { - return; - } - - if (v === "") { - this._url.port = null; - } else { - usm.basicURLParse(v, { url: this._url, stateOverride: "port" }); - } - } - - get pathname() { - if (this._url.cannotBeABaseURL) { - return this._url.path[0]; - } - - if (this._url.path.length === 0) { - return ""; - } - - return "/" + this._url.path.join("/"); - } - - set pathname(v) { - if (this._url.cannotBeABaseURL) { - return; - } - - this._url.path = []; - usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); - } - - get search() { - if (this._url.query === null || this._url.query === "") { - return ""; - } - - return "?" + this._url.query; - } - - set search(v) { - // TODO: query stuff - - const url = this._url; - - if (v === "") { - url.query = null; - return; - } - - const input = v[0] === "?" ? v.substring(1) : v; - url.query = ""; - usm.basicURLParse(input, { url, stateOverride: "query" }); - } - - get hash() { - if (this._url.fragment === null || this._url.fragment === "") { - return ""; - } - - return "#" + this._url.fragment; - } - - set hash(v) { - if (v === "") { - this._url.fragment = null; - return; - } - - const input = v[0] === "#" ? v.substring(1) : v; - this._url.fragment = ""; - usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" }); - } - - toJSON() { - return this.href; - } -}; - - -/***/ }), - -/***/ 3394: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - - -const conversions = __nccwpck_require__(4886); -const utils = __nccwpck_require__(3185); -const Impl = __nccwpck_require__(7537); - -const impl = utils.implSymbol; - -function URL(url) { - if (!this || this[impl] || !(this instanceof URL)) { - throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function."); - } - if (arguments.length < 1) { - throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present."); - } - const args = []; - for (let i = 0; i < arguments.length && i < 2; ++i) { - args[i] = arguments[i]; - } - args[0] = conversions["USVString"](args[0]); - if (args[1] !== undefined) { - args[1] = conversions["USVString"](args[1]); - } - - module.exports.setup(this, args); -} - -URL.prototype.toJSON = function toJSON() { - if (!this || !module.exports.is(this)) { - throw new TypeError("Illegal invocation"); - } - const args = []; - for (let i = 0; i < arguments.length && i < 0; ++i) { - args[i] = arguments[i]; - } - return this[impl].toJSON.apply(this[impl], args); -}; -Object.defineProperty(URL.prototype, "href", { - get() { - return this[impl].href; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].href = V; - }, - enumerable: true, - configurable: true -}); - -URL.prototype.toString = function () { - if (!this || !module.exports.is(this)) { - throw new TypeError("Illegal invocation"); - } - return this.href; -}; - -Object.defineProperty(URL.prototype, "origin", { - get() { - return this[impl].origin; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "protocol", { - get() { - return this[impl].protocol; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].protocol = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "username", { - get() { - return this[impl].username; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].username = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "password", { - get() { - return this[impl].password; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].password = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "host", { - get() { - return this[impl].host; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].host = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "hostname", { - get() { - return this[impl].hostname; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].hostname = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "port", { - get() { - return this[impl].port; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].port = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "pathname", { - get() { - return this[impl].pathname; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].pathname = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "search", { - get() { - return this[impl].search; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].search = V; - }, - enumerable: true, - configurable: true -}); - -Object.defineProperty(URL.prototype, "hash", { - get() { - return this[impl].hash; - }, - set(V) { - V = conversions["USVString"](V); - this[impl].hash = V; - }, - enumerable: true, - configurable: true -}); - - -module.exports = { - is(obj) { - return !!obj && obj[impl] instanceof Impl.implementation; - }, - create(constructorArgs, privateData) { - let obj = Object.create(URL.prototype); - this.setup(obj, constructorArgs, privateData); - return obj; - }, - setup(obj, constructorArgs, privateData) { - if (!privateData) privateData = {}; - privateData.wrapper = obj; - - obj[impl] = new Impl.implementation(constructorArgs, privateData); - obj[impl][utils.wrapperSymbol] = obj; - }, - interface: URL, - expose: { - Window: { URL: URL }, - Worker: { URL: URL } - } -}; - - - -/***/ }), - -/***/ 8665: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - - -exports.URL = __nccwpck_require__(3394)["interface"]; -exports.serializeURL = __nccwpck_require__(2158).serializeURL; -exports.serializeURLOrigin = __nccwpck_require__(2158).serializeURLOrigin; -exports.basicURLParse = __nccwpck_require__(2158).basicURLParse; -exports.setTheUsername = __nccwpck_require__(2158).setTheUsername; -exports.setThePassword = __nccwpck_require__(2158).setThePassword; -exports.serializeHost = __nccwpck_require__(2158).serializeHost; -exports.serializeInteger = __nccwpck_require__(2158).serializeInteger; -exports.parseURL = __nccwpck_require__(2158).parseURL; - - -/***/ }), - -/***/ 2158: -/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { - -"use strict"; - -const punycode = __nccwpck_require__(5477); -const tr46 = __nccwpck_require__(4256); - -const specialSchemes = { - ftp: 21, - file: null, - gopher: 70, - http: 80, - https: 443, - ws: 80, - wss: 443 -}; - -const failure = Symbol("failure"); - -function countSymbols(str) { - return punycode.ucs2.decode(str).length; -} - -function at(input, idx) { - const c = input[idx]; - return isNaN(c) ? undefined : String.fromCodePoint(c); -} - -function isASCIIDigit(c) { - return c >= 0x30 && c <= 0x39; -} - -function isASCIIAlpha(c) { - return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A); -} - -function isASCIIAlphanumeric(c) { - return isASCIIAlpha(c) || isASCIIDigit(c); -} - -function isASCIIHex(c) { - return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66); -} - -function isSingleDot(buffer) { - return buffer === "." || buffer.toLowerCase() === "%2e"; -} - -function isDoubleDot(buffer) { - buffer = buffer.toLowerCase(); - return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e"; -} - -function isWindowsDriveLetterCodePoints(cp1, cp2) { - return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124); -} - -function isWindowsDriveLetterString(string) { - return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|"); -} - -function isNormalizedWindowsDriveLetterString(string) { - return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":"; -} - -function containsForbiddenHostCodePoint(string) { - return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1; -} - -function containsForbiddenHostCodePointExcludingPercent(string) { - return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1; -} - -function isSpecialScheme(scheme) { - return specialSchemes[scheme] !== undefined; -} - -function isSpecial(url) { - return isSpecialScheme(url.scheme); -} - -function defaultPort(scheme) { - return specialSchemes[scheme]; -} - -function percentEncode(c) { - let hex = c.toString(16).toUpperCase(); - if (hex.length === 1) { - hex = "0" + hex; - } - - return "%" + hex; -} - -function utf8PercentEncode(c) { - const buf = new Buffer(c); - - let str = ""; - - for (let i = 0; i < buf.length; ++i) { - str += percentEncode(buf[i]); - } - - return str; -} - -function utf8PercentDecode(str) { - const input = new Buffer(str); - const output = []; - for (let i = 0; i < input.length; ++i) { - if (input[i] !== 37) { - output.push(input[i]); - } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) { - output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16)); - i += 2; - } else { - output.push(input[i]); - } - } - return new Buffer(output).toString(); -} - -function isC0ControlPercentEncode(c) { - return c <= 0x1F || c > 0x7E; -} - -const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]); -function isPathPercentEncode(c) { - return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c); -} - -const extraUserinfoPercentEncodeSet = - new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]); -function isUserinfoPercentEncode(c) { - return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c); -} - -function percentEncodeChar(c, encodeSetPredicate) { - const cStr = String.fromCodePoint(c); - - if (encodeSetPredicate(c)) { - return utf8PercentEncode(cStr); - } - - return cStr; -} - -function parseIPv4Number(input) { - let R = 10; - - if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") { - input = input.substring(2); - R = 16; - } else if (input.length >= 2 && input.charAt(0) === "0") { - input = input.substring(1); - R = 8; - } - - if (input === "") { - return 0; - } - - const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/); - if (regex.test(input)) { - return failure; - } - - return parseInt(input, R); -} - -function parseIPv4(input) { - const parts = input.split("."); - if (parts[parts.length - 1] === "") { - if (parts.length > 1) { - parts.pop(); - } - } - - if (parts.length > 4) { - return input; - } - - const numbers = []; - for (const part of parts) { - if (part === "") { - return input; - } - const n = parseIPv4Number(part); - if (n === failure) { - return input; - } - - numbers.push(n); - } - - for (let i = 0; i < numbers.length - 1; ++i) { - if (numbers[i] > 255) { - return failure; - } - } - if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) { - return failure; - } - - let ipv4 = numbers.pop(); - let counter = 0; - - for (const n of numbers) { - ipv4 += n * Math.pow(256, 3 - counter); - ++counter; - } - - return ipv4; -} - -function serializeIPv4(address) { - let output = ""; - let n = address; - - for (let i = 1; i <= 4; ++i) { - output = String(n % 256) + output; - if (i !== 4) { - output = "." + output; - } - n = Math.floor(n / 256); - } - - return output; -} - -function parseIPv6(input) { - const address = [0, 0, 0, 0, 0, 0, 0, 0]; - let pieceIndex = 0; - let compress = null; - let pointer = 0; - - input = punycode.ucs2.decode(input); - - if (input[pointer] === 58) { - if (input[pointer + 1] !== 58) { - return failure; - } - - pointer += 2; - ++pieceIndex; - compress = pieceIndex; - } - - while (pointer < input.length) { - if (pieceIndex === 8) { - return failure; - } - - if (input[pointer] === 58) { - if (compress !== null) { - return failure; - } - ++pointer; - ++pieceIndex; - compress = pieceIndex; - continue; - } - - let value = 0; - let length = 0; - - while (length < 4 && isASCIIHex(input[pointer])) { - value = value * 0x10 + parseInt(at(input, pointer), 16); - ++pointer; - ++length; - } - - if (input[pointer] === 46) { - if (length === 0) { - return failure; - } - - pointer -= length; - - if (pieceIndex > 6) { - return failure; - } - - let numbersSeen = 0; - - while (input[pointer] !== undefined) { - let ipv4Piece = null; - - if (numbersSeen > 0) { - if (input[pointer] === 46 && numbersSeen < 4) { - ++pointer; - } else { - return failure; } } - if (!isASCIIDigit(input[pointer])) { + return x; + }; + + conversions["USVString"] = function (V) { + const S = String(V); + const n = S.length; + const U = []; + for (let i = 0; i < n; ++i) { + const c = S.charCodeAt(i); + if (c < 0xd800 || c > 0xdfff) { + U.push(String.fromCodePoint(c)); + } else if (0xdc00 <= c && c <= 0xdfff) { + U.push(String.fromCodePoint(0xfffd)); + } else { + if (i === n - 1) { + U.push(String.fromCodePoint(0xfffd)); + } else { + const d = S.charCodeAt(i + 1); + if (0xdc00 <= d && d <= 0xdfff) { + const a = c & 0x3ff; + const b = d & 0x3ff; + U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); + ++i; + } else { + U.push(String.fromCodePoint(0xfffd)); + } + } + } + } + + return U.join(""); + }; + + conversions["Date"] = function (V, opts) { + if (!(V instanceof Date)) { + throw new TypeError("Argument is not a Date object"); + } + if (isNaN(V)) { + return undefined; + } + + return V; + }; + + conversions["RegExp"] = function (V, opts) { + if (!(V instanceof RegExp)) { + V = new RegExp(V); + } + + return V; + }; + + /***/ + }, + + /***/ 7537: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + const usm = __nccwpck_require__(2158); + + exports.implementation = class URLImpl { + constructor(constructorArgs) { + const url = constructorArgs[0]; + const base = constructorArgs[1]; + + let parsedBase = null; + if (base !== undefined) { + parsedBase = usm.basicURLParse(base); + if (parsedBase === "failure") { + throw new TypeError("Invalid base URL"); + } + } + + const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + + this._url = parsedURL; + + // TODO: query stuff + } + + get href() { + return usm.serializeURL(this._url); + } + + set href(v) { + const parsedURL = usm.basicURLParse(v); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + + this._url = parsedURL; + } + + get origin() { + return usm.serializeURLOrigin(this._url); + } + + get protocol() { + return this._url.scheme + ":"; + } + + set protocol(v) { + usm.basicURLParse(v + ":", { + url: this._url, + stateOverride: "scheme start", + }); + } + + get username() { + return this._url.username; + } + + set username(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + usm.setTheUsername(this._url, v); + } + + get password() { + return this._url.password; + } + + set password(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + usm.setThePassword(this._url, v); + } + + get host() { + const url = this._url; + + if (url.host === null) { + return ""; + } + + if (url.port === null) { + return usm.serializeHost(url.host); + } + + return ( + usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port) + ); + } + + set host(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); + } + + get hostname() { + if (this._url.host === null) { + return ""; + } + + return usm.serializeHost(this._url.host); + } + + set hostname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); + } + + get port() { + if (this._url.port === null) { + return ""; + } + + return usm.serializeInteger(this._url.port); + } + + set port(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + if (v === "") { + this._url.port = null; + } else { + usm.basicURLParse(v, { url: this._url, stateOverride: "port" }); + } + } + + get pathname() { + if (this._url.cannotBeABaseURL) { + return this._url.path[0]; + } + + if (this._url.path.length === 0) { + return ""; + } + + return "/" + this._url.path.join("/"); + } + + set pathname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + this._url.path = []; + usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); + } + + get search() { + if (this._url.query === null || this._url.query === "") { + return ""; + } + + return "?" + this._url.query; + } + + set search(v) { + // TODO: query stuff + + const url = this._url; + + if (v === "") { + url.query = null; + return; + } + + const input = v[0] === "?" ? v.substring(1) : v; + url.query = ""; + usm.basicURLParse(input, { url, stateOverride: "query" }); + } + + get hash() { + if (this._url.fragment === null || this._url.fragment === "") { + return ""; + } + + return "#" + this._url.fragment; + } + + set hash(v) { + if (v === "") { + this._url.fragment = null; + return; + } + + const input = v[0] === "#" ? v.substring(1) : v; + this._url.fragment = ""; + usm.basicURLParse(input, { + url: this._url, + stateOverride: "fragment", + }); + } + + toJSON() { + return this.href; + } + }; + + /***/ + }, + + /***/ 3394: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const conversions = __nccwpck_require__(4886); + const utils = __nccwpck_require__(3185); + const Impl = __nccwpck_require__(7537); + + const impl = utils.implSymbol; + + function URL(url) { + if (!this || this[impl] || !(this instanceof URL)) { + throw new TypeError( + "Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function." + ); + } + if (arguments.length < 1) { + throw new TypeError( + "Failed to construct 'URL': 1 argument required, but only " + + arguments.length + + " present." + ); + } + const args = []; + for (let i = 0; i < arguments.length && i < 2; ++i) { + args[i] = arguments[i]; + } + args[0] = conversions["USVString"](args[0]); + if (args[1] !== undefined) { + args[1] = conversions["USVString"](args[1]); + } + + module.exports.setup(this, args); + } + + URL.prototype.toJSON = function toJSON() { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + const args = []; + for (let i = 0; i < arguments.length && i < 0; ++i) { + args[i] = arguments[i]; + } + return this[impl].toJSON.apply(this[impl], args); + }; + Object.defineProperty(URL.prototype, "href", { + get() { + return this[impl].href; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].href = V; + }, + enumerable: true, + configurable: true, + }); + + URL.prototype.toString = function () { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + return this.href; + }; + + Object.defineProperty(URL.prototype, "origin", { + get() { + return this[impl].origin; + }, + enumerable: true, + configurable: true, + }); + + Object.defineProperty(URL.prototype, "protocol", { + get() { + return this[impl].protocol; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].protocol = V; + }, + enumerable: true, + configurable: true, + }); + + Object.defineProperty(URL.prototype, "username", { + get() { + return this[impl].username; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].username = V; + }, + enumerable: true, + configurable: true, + }); + + Object.defineProperty(URL.prototype, "password", { + get() { + return this[impl].password; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].password = V; + }, + enumerable: true, + configurable: true, + }); + + Object.defineProperty(URL.prototype, "host", { + get() { + return this[impl].host; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].host = V; + }, + enumerable: true, + configurable: true, + }); + + Object.defineProperty(URL.prototype, "hostname", { + get() { + return this[impl].hostname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hostname = V; + }, + enumerable: true, + configurable: true, + }); + + Object.defineProperty(URL.prototype, "port", { + get() { + return this[impl].port; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].port = V; + }, + enumerable: true, + configurable: true, + }); + + Object.defineProperty(URL.prototype, "pathname", { + get() { + return this[impl].pathname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].pathname = V; + }, + enumerable: true, + configurable: true, + }); + + Object.defineProperty(URL.prototype, "search", { + get() { + return this[impl].search; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].search = V; + }, + enumerable: true, + configurable: true, + }); + + Object.defineProperty(URL.prototype, "hash", { + get() { + return this[impl].hash; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hash = V; + }, + enumerable: true, + configurable: true, + }); + + module.exports = { + is(obj) { + return !!obj && obj[impl] instanceof Impl.implementation; + }, + create(constructorArgs, privateData) { + let obj = Object.create(URL.prototype); + this.setup(obj, constructorArgs, privateData); + return obj; + }, + setup(obj, constructorArgs, privateData) { + if (!privateData) privateData = {}; + privateData.wrapper = obj; + + obj[impl] = new Impl.implementation(constructorArgs, privateData); + obj[impl][utils.wrapperSymbol] = obj; + }, + interface: URL, + expose: { + Window: { URL: URL }, + Worker: { URL: URL }, + }, + }; + + /***/ + }, + + /***/ 8665: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + + exports.URL = __nccwpck_require__(3394)["interface"]; + exports.serializeURL = __nccwpck_require__(2158).serializeURL; + exports.serializeURLOrigin = __nccwpck_require__(2158).serializeURLOrigin; + exports.basicURLParse = __nccwpck_require__(2158).basicURLParse; + exports.setTheUsername = __nccwpck_require__(2158).setTheUsername; + exports.setThePassword = __nccwpck_require__(2158).setThePassword; + exports.serializeHost = __nccwpck_require__(2158).serializeHost; + exports.serializeInteger = __nccwpck_require__(2158).serializeInteger; + exports.parseURL = __nccwpck_require__(2158).parseURL; + + /***/ + }, + + /***/ 2158: /***/ ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) => { + "use strict"; + + const punycode = __nccwpck_require__(5477); + const tr46 = __nccwpck_require__(4256); + + const specialSchemes = { + ftp: 21, + file: null, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443, + }; + + const failure = Symbol("failure"); + + function countSymbols(str) { + return punycode.ucs2.decode(str).length; + } + + function at(input, idx) { + const c = input[idx]; + return isNaN(c) ? undefined : String.fromCodePoint(c); + } + + function isASCIIDigit(c) { + return c >= 0x30 && c <= 0x39; + } + + function isASCIIAlpha(c) { + return (c >= 0x41 && c <= 0x5a) || (c >= 0x61 && c <= 0x7a); + } + + function isASCIIAlphanumeric(c) { + return isASCIIAlpha(c) || isASCIIDigit(c); + } + + function isASCIIHex(c) { + return ( + isASCIIDigit(c) || + (c >= 0x41 && c <= 0x46) || + (c >= 0x61 && c <= 0x66) + ); + } + + function isSingleDot(buffer) { + return buffer === "." || buffer.toLowerCase() === "%2e"; + } + + function isDoubleDot(buffer) { + buffer = buffer.toLowerCase(); + return ( + buffer === ".." || + buffer === "%2e." || + buffer === ".%2e" || + buffer === "%2e%2e" + ); + } + + function isWindowsDriveLetterCodePoints(cp1, cp2) { + return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124); + } + + function isWindowsDriveLetterString(string) { + return ( + string.length === 2 && + isASCIIAlpha(string.codePointAt(0)) && + (string[1] === ":" || string[1] === "|") + ); + } + + function isNormalizedWindowsDriveLetterString(string) { + return ( + string.length === 2 && + isASCIIAlpha(string.codePointAt(0)) && + string[1] === ":" + ); + } + + function containsForbiddenHostCodePoint(string) { + return ( + string.search( + /\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/ + ) !== -1 + ); + } + + function containsForbiddenHostCodePointExcludingPercent(string) { + return ( + string.search( + /\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/ + ) !== -1 + ); + } + + function isSpecialScheme(scheme) { + return specialSchemes[scheme] !== undefined; + } + + function isSpecial(url) { + return isSpecialScheme(url.scheme); + } + + function defaultPort(scheme) { + return specialSchemes[scheme]; + } + + function percentEncode(c) { + let hex = c.toString(16).toUpperCase(); + if (hex.length === 1) { + hex = "0" + hex; + } + + return "%" + hex; + } + + function utf8PercentEncode(c) { + const buf = new Buffer(c); + + let str = ""; + + for (let i = 0; i < buf.length; ++i) { + str += percentEncode(buf[i]); + } + + return str; + } + + function utf8PercentDecode(str) { + const input = new Buffer(str); + const output = []; + for (let i = 0; i < input.length; ++i) { + if (input[i] !== 37) { + output.push(input[i]); + } else if ( + input[i] === 37 && + isASCIIHex(input[i + 1]) && + isASCIIHex(input[i + 2]) + ) { + output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16)); + i += 2; + } else { + output.push(input[i]); + } + } + return new Buffer(output).toString(); + } + + function isC0ControlPercentEncode(c) { + return c <= 0x1f || c > 0x7e; + } + + const extraPathPercentEncodeSet = new Set([ + 32, 34, 35, 60, 62, 63, 96, 123, 125, + ]); + function isPathPercentEncode(c) { + return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c); + } + + const extraUserinfoPercentEncodeSet = new Set([ + 47, 58, 59, 61, 64, 91, 92, 93, 94, 124, + ]); + function isUserinfoPercentEncode(c) { + return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c); + } + + function percentEncodeChar(c, encodeSetPredicate) { + const cStr = String.fromCodePoint(c); + + if (encodeSetPredicate(c)) { + return utf8PercentEncode(cStr); + } + + return cStr; + } + + function parseIPv4Number(input) { + let R = 10; + + if ( + input.length >= 2 && + input.charAt(0) === "0" && + input.charAt(1).toLowerCase() === "x" + ) { + input = input.substring(2); + R = 16; + } else if (input.length >= 2 && input.charAt(0) === "0") { + input = input.substring(1); + R = 8; + } + + if (input === "") { + return 0; + } + + const regex = + R === 10 ? /[^0-9]/ : R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/; + if (regex.test(input)) { return failure; } - while (isASCIIDigit(input[pointer])) { - const number = parseInt(at(input, pointer)); - if (ipv4Piece === null) { - ipv4Piece = number; - } else if (ipv4Piece === 0) { - return failure; - } else { - ipv4Piece = ipv4Piece * 10 + number; + return parseInt(input, R); + } + + function parseIPv4(input) { + const parts = input.split("."); + if (parts[parts.length - 1] === "") { + if (parts.length > 1) { + parts.pop(); } - if (ipv4Piece > 255) { - return failure; - } - ++pointer; } - address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece; + if (parts.length > 4) { + return input; + } - ++numbersSeen; + const numbers = []; + for (const part of parts) { + if (part === "") { + return input; + } + const n = parseIPv4Number(part); + if (n === failure) { + return input; + } - if (numbersSeen === 2 || numbersSeen === 4) { + numbers.push(n); + } + + for (let i = 0; i < numbers.length - 1; ++i) { + if (numbers[i] > 255) { + return failure; + } + } + if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) { + return failure; + } + + let ipv4 = numbers.pop(); + let counter = 0; + + for (const n of numbers) { + ipv4 += n * Math.pow(256, 3 - counter); + ++counter; + } + + return ipv4; + } + + function serializeIPv4(address) { + let output = ""; + let n = address; + + for (let i = 1; i <= 4; ++i) { + output = String(n % 256) + output; + if (i !== 4) { + output = "." + output; + } + n = Math.floor(n / 256); + } + + return output; + } + + function parseIPv6(input) { + const address = [0, 0, 0, 0, 0, 0, 0, 0]; + let pieceIndex = 0; + let compress = null; + let pointer = 0; + + input = punycode.ucs2.decode(input); + + if (input[pointer] === 58) { + if (input[pointer + 1] !== 58) { + return failure; + } + + pointer += 2; + ++pieceIndex; + compress = pieceIndex; + } + + while (pointer < input.length) { + if (pieceIndex === 8) { + return failure; + } + + if (input[pointer] === 58) { + if (compress !== null) { + return failure; + } + ++pointer; + ++pieceIndex; + compress = pieceIndex; + continue; + } + + let value = 0; + let length = 0; + + while (length < 4 && isASCIIHex(input[pointer])) { + value = value * 0x10 + parseInt(at(input, pointer), 16); + ++pointer; + ++length; + } + + if (input[pointer] === 46) { + if (length === 0) { + return failure; + } + + pointer -= length; + + if (pieceIndex > 6) { + return failure; + } + + let numbersSeen = 0; + + while (input[pointer] !== undefined) { + let ipv4Piece = null; + + if (numbersSeen > 0) { + if (input[pointer] === 46 && numbersSeen < 4) { + ++pointer; + } else { + return failure; + } + } + + if (!isASCIIDigit(input[pointer])) { + return failure; + } + + while (isASCIIDigit(input[pointer])) { + const number = parseInt(at(input, pointer)); + if (ipv4Piece === null) { + ipv4Piece = number; + } else if (ipv4Piece === 0) { + return failure; + } else { + ipv4Piece = ipv4Piece * 10 + number; + } + if (ipv4Piece > 255) { + return failure; + } + ++pointer; + } + + address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece; + + ++numbersSeen; + + if (numbersSeen === 2 || numbersSeen === 4) { + ++pieceIndex; + } + } + + if (numbersSeen !== 4) { + return failure; + } + + break; + } else if (input[pointer] === 58) { + ++pointer; + if (input[pointer] === undefined) { + return failure; + } + } else if (input[pointer] !== undefined) { + return failure; + } + + address[pieceIndex] = value; ++pieceIndex; } + + if (compress !== null) { + let swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + const temp = address[compress + swaps - 1]; + address[compress + swaps - 1] = address[pieceIndex]; + address[pieceIndex] = temp; + --pieceIndex; + --swaps; + } + } else if (compress === null && pieceIndex !== 8) { + return failure; + } + + return address; } - if (numbersSeen !== 4) { - return failure; + function serializeIPv6(address) { + let output = ""; + const seqResult = findLongestZeroSequence(address); + const compress = seqResult.idx; + let ignore0 = false; + + for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) { + if (ignore0 && address[pieceIndex] === 0) { + continue; + } else if (ignore0) { + ignore0 = false; + } + + if (compress === pieceIndex) { + const separator = pieceIndex === 0 ? "::" : ":"; + output += separator; + ignore0 = true; + continue; + } + + output += address[pieceIndex].toString(16); + + if (pieceIndex !== 7) { + output += ":"; + } + } + + return output; } - break; - } else if (input[pointer] === 58) { - ++pointer; - if (input[pointer] === undefined) { - return failure; - } - } else if (input[pointer] !== undefined) { - return failure; - } + function parseHost(input, isSpecialArg) { + if (input[0] === "[") { + if (input[input.length - 1] !== "]") { + return failure; + } - address[pieceIndex] = value; - ++pieceIndex; - } + return parseIPv6(input.substring(1, input.length - 1)); + } - if (compress !== null) { - let swaps = pieceIndex - compress; - pieceIndex = 7; - while (pieceIndex !== 0 && swaps > 0) { - const temp = address[compress + swaps - 1]; - address[compress + swaps - 1] = address[pieceIndex]; - address[pieceIndex] = temp; - --pieceIndex; - --swaps; - } - } else if (compress === null && pieceIndex !== 8) { - return failure; - } + if (!isSpecialArg) { + return parseOpaqueHost(input); + } - return address; -} + const domain = utf8PercentDecode(input); + const asciiDomain = tr46.toASCII( + domain, + false, + tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, + false + ); + if (asciiDomain === null) { + return failure; + } -function serializeIPv6(address) { - let output = ""; - const seqResult = findLongestZeroSequence(address); - const compress = seqResult.idx; - let ignore0 = false; + if (containsForbiddenHostCodePoint(asciiDomain)) { + return failure; + } - for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) { - if (ignore0 && address[pieceIndex] === 0) { - continue; - } else if (ignore0) { - ignore0 = false; - } + const ipv4Host = parseIPv4(asciiDomain); + if (typeof ipv4Host === "number" || ipv4Host === failure) { + return ipv4Host; + } - if (compress === pieceIndex) { - const separator = pieceIndex === 0 ? "::" : ":"; - output += separator; - ignore0 = true; - continue; - } - - output += address[pieceIndex].toString(16); - - if (pieceIndex !== 7) { - output += ":"; - } - } - - return output; -} - -function parseHost(input, isSpecialArg) { - if (input[0] === "[") { - if (input[input.length - 1] !== "]") { - return failure; - } - - return parseIPv6(input.substring(1, input.length - 1)); - } - - if (!isSpecialArg) { - return parseOpaqueHost(input); - } - - const domain = utf8PercentDecode(input); - const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false); - if (asciiDomain === null) { - return failure; - } - - if (containsForbiddenHostCodePoint(asciiDomain)) { - return failure; - } - - const ipv4Host = parseIPv4(asciiDomain); - if (typeof ipv4Host === "number" || ipv4Host === failure) { - return ipv4Host; - } - - return asciiDomain; -} - -function parseOpaqueHost(input) { - if (containsForbiddenHostCodePointExcludingPercent(input)) { - return failure; - } - - let output = ""; - const decoded = punycode.ucs2.decode(input); - for (let i = 0; i < decoded.length; ++i) { - output += percentEncodeChar(decoded[i], isC0ControlPercentEncode); - } - return output; -} - -function findLongestZeroSequence(arr) { - let maxIdx = null; - let maxLen = 1; // only find elements > 1 - let currStart = null; - let currLen = 0; - - for (let i = 0; i < arr.length; ++i) { - if (arr[i] !== 0) { - if (currLen > maxLen) { - maxIdx = currStart; - maxLen = currLen; + return asciiDomain; } - currStart = null; - currLen = 0; - } else { - if (currStart === null) { - currStart = i; - } - ++currLen; - } - } + function parseOpaqueHost(input) { + if (containsForbiddenHostCodePointExcludingPercent(input)) { + return failure; + } - // if trailing zeros - if (currLen > maxLen) { - maxIdx = currStart; - maxLen = currLen; - } - - return { - idx: maxIdx, - len: maxLen - }; -} - -function serializeHost(host) { - if (typeof host === "number") { - return serializeIPv4(host); - } - - // IPv6 serializer - if (host instanceof Array) { - return "[" + serializeIPv6(host) + "]"; - } - - return host; -} - -function trimControlChars(url) { - return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, ""); -} - -function trimTabAndNewline(url) { - return url.replace(/\u0009|\u000A|\u000D/g, ""); -} - -function shortenPath(url) { - const path = url.path; - if (path.length === 0) { - return; - } - if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) { - return; - } - - path.pop(); -} - -function includesCredentials(url) { - return url.username !== "" || url.password !== ""; -} - -function cannotHaveAUsernamePasswordPort(url) { - return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file"; -} - -function isNormalizedWindowsDriveLetter(string) { - return /^[A-Za-z]:$/.test(string); -} - -function URLStateMachine(input, base, encodingOverride, url, stateOverride) { - this.pointer = 0; - this.input = input; - this.base = base || null; - this.encodingOverride = encodingOverride || "utf-8"; - this.stateOverride = stateOverride; - this.url = url; - this.failure = false; - this.parseError = false; - - if (!this.url) { - this.url = { - scheme: "", - username: "", - password: "", - host: null, - port: null, - path: [], - query: null, - fragment: null, - - cannotBeABaseURL: false - }; - - const res = trimControlChars(this.input); - if (res !== this.input) { - this.parseError = true; - } - this.input = res; - } - - const res = trimTabAndNewline(this.input); - if (res !== this.input) { - this.parseError = true; - } - this.input = res; - - this.state = stateOverride || "scheme start"; - - this.buffer = ""; - this.atFlag = false; - this.arrFlag = false; - this.passwordTokenSeenFlag = false; - - this.input = punycode.ucs2.decode(this.input); - - for (; this.pointer <= this.input.length; ++this.pointer) { - const c = this.input[this.pointer]; - const cStr = isNaN(c) ? undefined : String.fromCodePoint(c); - - // exec state machine - const ret = this["parse " + this.state](c, cStr); - if (!ret) { - break; // terminate algorithm - } else if (ret === failure) { - this.failure = true; - break; - } - } -} - -URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) { - if (isASCIIAlpha(c)) { - this.buffer += cStr.toLowerCase(); - this.state = "scheme"; - } else if (!this.stateOverride) { - this.state = "no scheme"; - --this.pointer; - } else { - this.parseError = true; - return failure; - } - - return true; -}; - -URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) { - if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) { - this.buffer += cStr.toLowerCase(); - } else if (c === 58) { - if (this.stateOverride) { - if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) { - return false; + let output = ""; + const decoded = punycode.ucs2.decode(input); + for (let i = 0; i < decoded.length; ++i) { + output += percentEncodeChar(decoded[i], isC0ControlPercentEncode); + } + return output; } - if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) { - return false; + function findLongestZeroSequence(arr) { + let maxIdx = null; + let maxLen = 1; // only find elements > 1 + let currStart = null; + let currLen = 0; + + for (let i = 0; i < arr.length; ++i) { + if (arr[i] !== 0) { + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + currStart = null; + currLen = 0; + } else { + if (currStart === null) { + currStart = i; + } + ++currLen; + } + } + + // if trailing zeros + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + return { + idx: maxIdx, + len: maxLen, + }; } - if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") { - return false; + function serializeHost(host) { + if (typeof host === "number") { + return serializeIPv4(host); + } + + // IPv6 serializer + if (host instanceof Array) { + return "[" + serializeIPv6(host) + "]"; + } + + return host; } - if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) { - return false; - } - } - this.url.scheme = this.buffer; - this.buffer = ""; - if (this.stateOverride) { - return false; - } - if (this.url.scheme === "file") { - if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) { - this.parseError = true; - } - this.state = "file"; - } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) { - this.state = "special relative or authority"; - } else if (isSpecial(this.url)) { - this.state = "special authority slashes"; - } else if (this.input[this.pointer + 1] === 47) { - this.state = "path or authority"; - ++this.pointer; - } else { - this.url.cannotBeABaseURL = true; - this.url.path.push(""); - this.state = "cannot-be-a-base-URL path"; - } - } else if (!this.stateOverride) { - this.buffer = ""; - this.state = "no scheme"; - this.pointer = -1; - } else { - this.parseError = true; - return failure; - } - - return true; -}; - -URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) { - if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) { - return failure; - } else if (this.base.cannotBeABaseURL && c === 35) { - this.url.scheme = this.base.scheme; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - this.url.fragment = ""; - this.url.cannotBeABaseURL = true; - this.state = "fragment"; - } else if (this.base.scheme === "file") { - this.state = "file"; - --this.pointer; - } else { - this.state = "relative"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) { - if (c === 47 && this.input[this.pointer + 1] === 47) { - this.state = "special authority ignore slashes"; - ++this.pointer; - } else { - this.parseError = true; - this.state = "relative"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) { - if (c === 47) { - this.state = "authority"; - } else { - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse relative"] = function parseRelative(c) { - this.url.scheme = this.base.scheme; - if (isNaN(c)) { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - } else if (c === 47) { - this.state = "relative slash"; - } else if (c === 63) { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(); - this.url.query = ""; - this.state = "query"; - } else if (c === 35) { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - this.url.fragment = ""; - this.state = "fragment"; - } else if (isSpecial(this.url) && c === 92) { - this.parseError = true; - this.state = "relative slash"; - } else { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.url.path = this.base.path.slice(0, this.base.path.length - 1); - - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) { - if (isSpecial(this.url) && (c === 47 || c === 92)) { - if (c === 92) { - this.parseError = true; - } - this.state = "special authority ignore slashes"; - } else if (c === 47) { - this.state = "authority"; - } else { - this.url.username = this.base.username; - this.url.password = this.base.password; - this.url.host = this.base.host; - this.url.port = this.base.port; - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) { - if (c === 47 && this.input[this.pointer + 1] === 47) { - this.state = "special authority ignore slashes"; - ++this.pointer; - } else { - this.parseError = true; - this.state = "special authority ignore slashes"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) { - if (c !== 47 && c !== 92) { - this.state = "authority"; - --this.pointer; - } else { - this.parseError = true; - } - - return true; -}; - -URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) { - if (c === 64) { - this.parseError = true; - if (this.atFlag) { - this.buffer = "%40" + this.buffer; - } - this.atFlag = true; - - // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars - const len = countSymbols(this.buffer); - for (let pointer = 0; pointer < len; ++pointer) { - const codePoint = this.buffer.codePointAt(pointer); - - if (codePoint === 58 && !this.passwordTokenSeenFlag) { - this.passwordTokenSeenFlag = true; - continue; - } - const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode); - if (this.passwordTokenSeenFlag) { - this.url.password += encodedCodePoints; - } else { - this.url.username += encodedCodePoints; - } - } - this.buffer = ""; - } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || - (isSpecial(this.url) && c === 92)) { - if (this.atFlag && this.buffer === "") { - this.parseError = true; - return failure; - } - this.pointer -= countSymbols(this.buffer) + 1; - this.buffer = ""; - this.state = "host"; - } else { - this.buffer += cStr; - } - - return true; -}; - -URLStateMachine.prototype["parse hostname"] = -URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) { - if (this.stateOverride && this.url.scheme === "file") { - --this.pointer; - this.state = "file host"; - } else if (c === 58 && !this.arrFlag) { - if (this.buffer === "") { - this.parseError = true; - return failure; - } - - const host = parseHost(this.buffer, isSpecial(this.url)); - if (host === failure) { - return failure; - } - - this.url.host = host; - this.buffer = ""; - this.state = "port"; - if (this.stateOverride === "hostname") { - return false; - } - } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || - (isSpecial(this.url) && c === 92)) { - --this.pointer; - if (isSpecial(this.url) && this.buffer === "") { - this.parseError = true; - return failure; - } else if (this.stateOverride && this.buffer === "" && - (includesCredentials(this.url) || this.url.port !== null)) { - this.parseError = true; - return false; - } - - const host = parseHost(this.buffer, isSpecial(this.url)); - if (host === failure) { - return failure; - } - - this.url.host = host; - this.buffer = ""; - this.state = "path start"; - if (this.stateOverride) { - return false; - } - } else { - if (c === 91) { - this.arrFlag = true; - } else if (c === 93) { - this.arrFlag = false; - } - this.buffer += cStr; - } - - return true; -}; - -URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) { - if (isASCIIDigit(c)) { - this.buffer += cStr; - } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || - (isSpecial(this.url) && c === 92) || - this.stateOverride) { - if (this.buffer !== "") { - const port = parseInt(this.buffer); - if (port > Math.pow(2, 16) - 1) { - this.parseError = true; - return failure; - } - this.url.port = port === defaultPort(this.url.scheme) ? null : port; - this.buffer = ""; - } - if (this.stateOverride) { - return false; - } - this.state = "path start"; - --this.pointer; - } else { - this.parseError = true; - return failure; - } - - return true; -}; - -const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]); - -URLStateMachine.prototype["parse file"] = function parseFile(c) { - this.url.scheme = "file"; - - if (c === 47 || c === 92) { - if (c === 92) { - this.parseError = true; - } - this.state = "file slash"; - } else if (this.base !== null && this.base.scheme === "file") { - if (isNaN(c)) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - } else if (c === 63) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - this.url.query = ""; - this.state = "query"; - } else if (c === 35) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - this.url.query = this.base.query; - this.url.fragment = ""; - this.state = "fragment"; - } else { - if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points - !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) || - (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points - !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) { - this.url.host = this.base.host; - this.url.path = this.base.path.slice(); - shortenPath(this.url); - } else { - this.parseError = true; + function trimControlChars(url) { + return url.replace( + /^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, + "" + ); } - this.state = "path"; - --this.pointer; - } - } else { - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) { - if (c === 47 || c === 92) { - if (c === 92) { - this.parseError = true; - } - this.state = "file host"; - } else { - if (this.base !== null && this.base.scheme === "file") { - if (isNormalizedWindowsDriveLetterString(this.base.path[0])) { - this.url.path.push(this.base.path[0]); - } else { - this.url.host = this.base.host; - } - } - this.state = "path"; - --this.pointer; - } - - return true; -}; - -URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) { - if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) { - --this.pointer; - if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) { - this.parseError = true; - this.state = "path"; - } else if (this.buffer === "") { - this.url.host = ""; - if (this.stateOverride) { - return false; - } - this.state = "path start"; - } else { - let host = parseHost(this.buffer, isSpecial(this.url)); - if (host === failure) { - return failure; - } - if (host === "localhost") { - host = ""; - } - this.url.host = host; - - if (this.stateOverride) { - return false; + function trimTabAndNewline(url) { + return url.replace(/\u0009|\u000A|\u000D/g, ""); } - this.buffer = ""; - this.state = "path start"; - } - } else { - this.buffer += cStr; - } + function shortenPath(url) { + const path = url.path; + if (path.length === 0) { + return; + } + if ( + url.scheme === "file" && + path.length === 1 && + isNormalizedWindowsDriveLetter(path[0]) + ) { + return; + } - return true; -}; - -URLStateMachine.prototype["parse path start"] = function parsePathStart(c) { - if (isSpecial(this.url)) { - if (c === 92) { - this.parseError = true; - } - this.state = "path"; - - if (c !== 47 && c !== 92) { - --this.pointer; - } - } else if (!this.stateOverride && c === 63) { - this.url.query = ""; - this.state = "query"; - } else if (!this.stateOverride && c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } else if (c !== undefined) { - this.state = "path"; - if (c !== 47) { - --this.pointer; - } - } - - return true; -}; - -URLStateMachine.prototype["parse path"] = function parsePath(c) { - if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) || - (!this.stateOverride && (c === 63 || c === 35))) { - if (isSpecial(this.url) && c === 92) { - this.parseError = true; - } - - if (isDoubleDot(this.buffer)) { - shortenPath(this.url); - if (c !== 47 && !(isSpecial(this.url) && c === 92)) { - this.url.path.push(""); + path.pop(); } - } else if (isSingleDot(this.buffer) && c !== 47 && - !(isSpecial(this.url) && c === 92)) { - this.url.path.push(""); - } else if (!isSingleDot(this.buffer)) { - if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) { - if (this.url.host !== "" && this.url.host !== null) { + + function includesCredentials(url) { + return url.username !== "" || url.password !== ""; + } + + function cannotHaveAUsernamePasswordPort(url) { + return ( + url.host === null || + url.host === "" || + url.cannotBeABaseURL || + url.scheme === "file" + ); + } + + function isNormalizedWindowsDriveLetter(string) { + return /^[A-Za-z]:$/.test(string); + } + + function URLStateMachine( + input, + base, + encodingOverride, + url, + stateOverride + ) { + this.pointer = 0; + this.input = input; + this.base = base || null; + this.encodingOverride = encodingOverride || "utf-8"; + this.stateOverride = stateOverride; + this.url = url; + this.failure = false; + this.parseError = false; + + if (!this.url) { + this.url = { + scheme: "", + username: "", + password: "", + host: null, + port: null, + path: [], + query: null, + fragment: null, + + cannotBeABaseURL: false, + }; + + const res = trimControlChars(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + } + + const res = trimTabAndNewline(this.input); + if (res !== this.input) { this.parseError = true; - this.url.host = ""; } - this.buffer = this.buffer[0] + ":"; + this.input = res; + + this.state = stateOverride || "scheme start"; + + this.buffer = ""; + this.atFlag = false; + this.arrFlag = false; + this.passwordTokenSeenFlag = false; + + this.input = punycode.ucs2.decode(this.input); + + for (; this.pointer <= this.input.length; ++this.pointer) { + const c = this.input[this.pointer]; + const cStr = isNaN(c) ? undefined : String.fromCodePoint(c); + + // exec state machine + const ret = this["parse " + this.state](c, cStr); + if (!ret) { + break; // terminate algorithm + } else if (ret === failure) { + this.failure = true; + break; + } + } } - this.url.path.push(this.buffer); - } - this.buffer = ""; - if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) { - while (this.url.path.length > 1 && this.url.path[0] === "") { - this.parseError = true; - this.url.path.shift(); + + URLStateMachine.prototype["parse scheme start"] = + function parseSchemeStart(c, cStr) { + if (isASCIIAlpha(c)) { + this.buffer += cStr.toLowerCase(); + this.state = "scheme"; + } else if (!this.stateOverride) { + this.state = "no scheme"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; + }; + + URLStateMachine.prototype["parse scheme"] = function parseScheme( + c, + cStr + ) { + if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) { + this.buffer += cStr.toLowerCase(); + } else if (c === 58) { + if (this.stateOverride) { + if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) { + return false; + } + + if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) { + return false; + } + + if ( + (includesCredentials(this.url) || this.url.port !== null) && + this.buffer === "file" + ) { + return false; + } + + if ( + this.url.scheme === "file" && + (this.url.host === "" || this.url.host === null) + ) { + return false; + } + } + this.url.scheme = this.buffer; + this.buffer = ""; + if (this.stateOverride) { + return false; + } + if (this.url.scheme === "file") { + if ( + this.input[this.pointer + 1] !== 47 || + this.input[this.pointer + 2] !== 47 + ) { + this.parseError = true; + } + this.state = "file"; + } else if ( + isSpecial(this.url) && + this.base !== null && + this.base.scheme === this.url.scheme + ) { + this.state = "special relative or authority"; + } else if (isSpecial(this.url)) { + this.state = "special authority slashes"; + } else if (this.input[this.pointer + 1] === 47) { + this.state = "path or authority"; + ++this.pointer; + } else { + this.url.cannotBeABaseURL = true; + this.url.path.push(""); + this.state = "cannot-be-a-base-URL path"; + } + } else if (!this.stateOverride) { + this.buffer = ""; + this.state = "no scheme"; + this.pointer = -1; + } else { + this.parseError = true; + return failure; + } + + return true; + }; + + URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) { + if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) { + return failure; + } else if (this.base.cannotBeABaseURL && c === 35) { + this.url.scheme = this.base.scheme; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.url.cannotBeABaseURL = true; + this.state = "fragment"; + } else if (this.base.scheme === "file") { + this.state = "file"; + --this.pointer; + } else { + this.state = "relative"; + --this.pointer; + } + + return true; + }; + + URLStateMachine.prototype["parse special relative or authority"] = + function parseSpecialRelativeOrAuthority(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "relative"; + --this.pointer; + } + + return true; + }; + + URLStateMachine.prototype["parse path or authority"] = + function parsePathOrAuthority(c) { + if (c === 47) { + this.state = "authority"; + } else { + this.state = "path"; + --this.pointer; + } + + return true; + }; + + URLStateMachine.prototype["parse relative"] = function parseRelative(c) { + this.url.scheme = this.base.scheme; + if (isNaN(c)) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 47) { + this.state = "relative slash"; + } else if (c === 63) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else if (isSpecial(this.url) && c === 92) { + this.parseError = true; + this.state = "relative slash"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(0, this.base.path.length - 1); + + this.state = "path"; + --this.pointer; + } + + return true; + }; + + URLStateMachine.prototype["parse relative slash"] = + function parseRelativeSlash(c) { + if (isSpecial(this.url) && (c === 47 || c === 92)) { + if (c === 92) { + this.parseError = true; + } + this.state = "special authority ignore slashes"; + } else if (c === 47) { + this.state = "authority"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.state = "path"; + --this.pointer; + } + + return true; + }; + + URLStateMachine.prototype["parse special authority slashes"] = + function parseSpecialAuthoritySlashes(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "special authority ignore slashes"; + --this.pointer; + } + + return true; + }; + + URLStateMachine.prototype["parse special authority ignore slashes"] = + function parseSpecialAuthorityIgnoreSlashes(c) { + if (c !== 47 && c !== 92) { + this.state = "authority"; + --this.pointer; + } else { + this.parseError = true; + } + + return true; + }; + + URLStateMachine.prototype["parse authority"] = function parseAuthority( + c, + cStr + ) { + if (c === 64) { + this.parseError = true; + if (this.atFlag) { + this.buffer = "%40" + this.buffer; + } + this.atFlag = true; + + // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars + const len = countSymbols(this.buffer); + for (let pointer = 0; pointer < len; ++pointer) { + const codePoint = this.buffer.codePointAt(pointer); + + if (codePoint === 58 && !this.passwordTokenSeenFlag) { + this.passwordTokenSeenFlag = true; + continue; + } + const encodedCodePoints = percentEncodeChar( + codePoint, + isUserinfoPercentEncode + ); + if (this.passwordTokenSeenFlag) { + this.url.password += encodedCodePoints; + } else { + this.url.username += encodedCodePoints; + } + } + this.buffer = ""; + } else if ( + isNaN(c) || + c === 47 || + c === 63 || + c === 35 || + (isSpecial(this.url) && c === 92) + ) { + if (this.atFlag && this.buffer === "") { + this.parseError = true; + return failure; + } + this.pointer -= countSymbols(this.buffer) + 1; + this.buffer = ""; + this.state = "host"; + } else { + this.buffer += cStr; + } + + return true; + }; + + URLStateMachine.prototype["parse hostname"] = URLStateMachine.prototype[ + "parse host" + ] = function parseHostName(c, cStr) { + if (this.stateOverride && this.url.scheme === "file") { + --this.pointer; + this.state = "file host"; + } else if (c === 58 && !this.arrFlag) { + if (this.buffer === "") { + this.parseError = true; + return failure; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "port"; + if (this.stateOverride === "hostname") { + return false; + } + } else if ( + isNaN(c) || + c === 47 || + c === 63 || + c === 35 || + (isSpecial(this.url) && c === 92) + ) { + --this.pointer; + if (isSpecial(this.url) && this.buffer === "") { + this.parseError = true; + return failure; + } else if ( + this.stateOverride && + this.buffer === "" && + (includesCredentials(this.url) || this.url.port !== null) + ) { + this.parseError = true; + return false; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "path start"; + if (this.stateOverride) { + return false; + } + } else { + if (c === 91) { + this.arrFlag = true; + } else if (c === 93) { + this.arrFlag = false; + } + this.buffer += cStr; + } + + return true; + }; + + URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) { + if (isASCIIDigit(c)) { + this.buffer += cStr; + } else if ( + isNaN(c) || + c === 47 || + c === 63 || + c === 35 || + (isSpecial(this.url) && c === 92) || + this.stateOverride + ) { + if (this.buffer !== "") { + const port = parseInt(this.buffer); + if (port > Math.pow(2, 16) - 1) { + this.parseError = true; + return failure; + } + this.url.port = port === defaultPort(this.url.scheme) ? null : port; + this.buffer = ""; + } + if (this.stateOverride) { + return false; + } + this.state = "path start"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; + }; + + const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]); + + URLStateMachine.prototype["parse file"] = function parseFile(c) { + this.url.scheme = "file"; + + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file slash"; + } else if (this.base !== null && this.base.scheme === "file") { + if (isNaN(c)) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 63) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else { + if ( + this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points + !isWindowsDriveLetterCodePoints( + c, + this.input[this.pointer + 1] + ) || + (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points + !fileOtherwiseCodePoints.has(this.input[this.pointer + 2])) + ) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + shortenPath(this.url); + } else { + this.parseError = true; + } + + this.state = "path"; + --this.pointer; + } + } else { + this.state = "path"; + --this.pointer; + } + + return true; + }; + + URLStateMachine.prototype["parse file slash"] = function parseFileSlash( + c + ) { + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file host"; + } else { + if (this.base !== null && this.base.scheme === "file") { + if (isNormalizedWindowsDriveLetterString(this.base.path[0])) { + this.url.path.push(this.base.path[0]); + } else { + this.url.host = this.base.host; + } + } + this.state = "path"; + --this.pointer; + } + + return true; + }; + + URLStateMachine.prototype["parse file host"] = function parseFileHost( + c, + cStr + ) { + if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) { + --this.pointer; + if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) { + this.parseError = true; + this.state = "path"; + } else if (this.buffer === "") { + this.url.host = ""; + if (this.stateOverride) { + return false; + } + this.state = "path start"; + } else { + let host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + if (host === "localhost") { + host = ""; + } + this.url.host = host; + + if (this.stateOverride) { + return false; + } + + this.buffer = ""; + this.state = "path start"; + } + } else { + this.buffer += cStr; + } + + return true; + }; + + URLStateMachine.prototype["parse path start"] = function parsePathStart( + c + ) { + if (isSpecial(this.url)) { + if (c === 92) { + this.parseError = true; + } + this.state = "path"; + + if (c !== 47 && c !== 92) { + --this.pointer; + } + } else if (!this.stateOverride && c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (!this.stateOverride && c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else if (c !== undefined) { + this.state = "path"; + if (c !== 47) { + --this.pointer; + } + } + + return true; + }; + + URLStateMachine.prototype["parse path"] = function parsePath(c) { + if ( + isNaN(c) || + c === 47 || + (isSpecial(this.url) && c === 92) || + (!this.stateOverride && (c === 63 || c === 35)) + ) { + if (isSpecial(this.url) && c === 92) { + this.parseError = true; + } + + if (isDoubleDot(this.buffer)) { + shortenPath(this.url); + if (c !== 47 && !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } + } else if ( + isSingleDot(this.buffer) && + c !== 47 && + !(isSpecial(this.url) && c === 92) + ) { + this.url.path.push(""); + } else if (!isSingleDot(this.buffer)) { + if ( + this.url.scheme === "file" && + this.url.path.length === 0 && + isWindowsDriveLetterString(this.buffer) + ) { + if (this.url.host !== "" && this.url.host !== null) { + this.parseError = true; + this.url.host = ""; + } + this.buffer = this.buffer[0] + ":"; + } + this.url.path.push(this.buffer); + } + this.buffer = ""; + if ( + this.url.scheme === "file" && + (c === undefined || c === 63 || c === 35) + ) { + while (this.url.path.length > 1 && this.url.path[0] === "") { + this.parseError = true; + this.url.path.shift(); + } + } + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + + if ( + c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2])) + ) { + this.parseError = true; + } + + this.buffer += percentEncodeChar(c, isPathPercentEncode); + } + + return true; + }; + + URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = + function parseCannotBeABaseURLPath(c) { + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else { + // TODO: Add: not a URL code point + if (!isNaN(c) && c !== 37) { + this.parseError = true; + } + + if ( + c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2])) + ) { + this.parseError = true; + } + + if (!isNaN(c)) { + this.url.path[0] = + this.url.path[0] + + percentEncodeChar(c, isC0ControlPercentEncode); + } + } + + return true; + }; + + URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) { + if (isNaN(c) || (!this.stateOverride && c === 35)) { + if ( + !isSpecial(this.url) || + this.url.scheme === "ws" || + this.url.scheme === "wss" + ) { + this.encodingOverride = "utf-8"; + } + + const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead + for (let i = 0; i < buffer.length; ++i) { + if ( + buffer[i] < 0x21 || + buffer[i] > 0x7e || + buffer[i] === 0x22 || + buffer[i] === 0x23 || + buffer[i] === 0x3c || + buffer[i] === 0x3e + ) { + this.url.query += percentEncode(buffer[i]); + } else { + this.url.query += String.fromCodePoint(buffer[i]); + } + } + + this.buffer = ""; + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if ( + c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2])) + ) { + this.parseError = true; + } + + this.buffer += cStr; + } + + return true; + }; + + URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { + if (isNaN(c)) { + // do nothing + } else if (c === 0x0) { + this.parseError = true; + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if ( + c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2])) + ) { + this.parseError = true; + } + + this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); + } + + return true; + }; + + function serializeURL(url, excludeFragment) { + let output = url.scheme + ":"; + if (url.host !== null) { + output += "//"; + + if (url.username !== "" || url.password !== "") { + output += url.username; + if (url.password !== "") { + output += ":" + url.password; + } + output += "@"; + } + + output += serializeHost(url.host); + + if (url.port !== null) { + output += ":" + url.port; + } + } else if (url.host === null && url.scheme === "file") { + output += "//"; + } + + if (url.cannotBeABaseURL) { + output += url.path[0]; + } else { + for (const string of url.path) { + output += "/" + string; + } + } + + if (url.query !== null) { + output += "?" + url.query; + } + + if (!excludeFragment && url.fragment !== null) { + output += "#" + url.fragment; + } + + return output; } - } - if (c === 63) { - this.url.query = ""; - this.state = "query"; - } - if (c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } - } else { - // TODO: If c is not a URL code point and not "%", parse error. - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } + function serializeOrigin(tuple) { + let result = tuple.scheme + "://"; + result += serializeHost(tuple.host); - this.buffer += percentEncodeChar(c, isPathPercentEncode); - } + if (tuple.port !== null) { + result += ":" + tuple.port; + } - return true; -}; - -URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) { - if (c === 63) { - this.url.query = ""; - this.state = "query"; - } else if (c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } else { - // TODO: Add: not a URL code point - if (!isNaN(c) && c !== 37) { - this.parseError = true; - } - - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - if (!isNaN(c)) { - this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode); - } - } - - return true; -}; - -URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) { - if (isNaN(c) || (!this.stateOverride && c === 35)) { - if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") { - this.encodingOverride = "utf-8"; - } - - const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead - for (let i = 0; i < buffer.length; ++i) { - if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 || - buffer[i] === 0x3C || buffer[i] === 0x3E) { - this.url.query += percentEncode(buffer[i]); - } else { - this.url.query += String.fromCodePoint(buffer[i]); + return result; } - } - this.buffer = ""; - if (c === 35) { - this.url.fragment = ""; - this.state = "fragment"; - } - } else { - // TODO: If c is not a URL code point and not "%", parse error. - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - this.buffer += cStr; - } - - return true; -}; - -URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { - if (isNaN(c)) { // do nothing - } else if (c === 0x0) { - this.parseError = true; - } else { - // TODO: If c is not a URL code point and not "%", parse error. - if (c === 37 && - (!isASCIIHex(this.input[this.pointer + 1]) || - !isASCIIHex(this.input[this.pointer + 2]))) { - this.parseError = true; - } - - this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); - } - - return true; -}; - -function serializeURL(url, excludeFragment) { - let output = url.scheme + ":"; - if (url.host !== null) { - output += "//"; - - if (url.username !== "" || url.password !== "") { - output += url.username; - if (url.password !== "") { - output += ":" + url.password; - } - output += "@"; - } - - output += serializeHost(url.host); - - if (url.port !== null) { - output += ":" + url.port; - } - } else if (url.host === null && url.scheme === "file") { - output += "//"; - } - - if (url.cannotBeABaseURL) { - output += url.path[0]; - } else { - for (const string of url.path) { - output += "/" + string; - } - } - - if (url.query !== null) { - output += "?" + url.query; - } - - if (!excludeFragment && url.fragment !== null) { - output += "#" + url.fragment; - } - - return output; -} - -function serializeOrigin(tuple) { - let result = tuple.scheme + "://"; - result += serializeHost(tuple.host); - - if (tuple.port !== null) { - result += ":" + tuple.port; - } - - return result; -} - -module.exports.serializeURL = serializeURL; - -module.exports.serializeURLOrigin = function (url) { - // https://url.spec.whatwg.org/#concept-url-origin - switch (url.scheme) { - case "blob": - try { - return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); - } catch (e) { - // serializing an opaque origin returns "null" - return "null"; - } - case "ftp": - case "gopher": - case "http": - case "https": - case "ws": - case "wss": - return serializeOrigin({ - scheme: url.scheme, - host: url.host, - port: url.port - }); - case "file": - // spec says "exercise to the reader", chrome says "file://" - return "file://"; - default: - // serializing an opaque origin returns "null" - return "null"; - } -}; - -module.exports.basicURLParse = function (input, options) { - if (options === undefined) { - options = {}; - } - - const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); - if (usm.failure) { - return "failure"; - } - - return usm.url; -}; - -module.exports.setTheUsername = function (url, username) { - url.username = ""; - const decoded = punycode.ucs2.decode(username); - for (let i = 0; i < decoded.length; ++i) { - url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.setThePassword = function (url, password) { - url.password = ""; - const decoded = punycode.ucs2.decode(password); - for (let i = 0; i < decoded.length; ++i) { - url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); - } -}; - -module.exports.serializeHost = serializeHost; - -module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; - -module.exports.serializeInteger = function (integer) { - return String(integer); -}; - -module.exports.parseURL = function (input, options) { - if (options === undefined) { - options = {}; - } - - // We don't handle blobs, so this just delegates: - return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); -}; - - -/***/ }), - -/***/ 3185: -/***/ ((module) => { - -"use strict"; - - -module.exports.mixin = function mixin(target, source) { - const keys = Object.getOwnPropertyNames(source); - for (let i = 0; i < keys.length; ++i) { - Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); - } -}; - -module.exports.wrapperSymbol = Symbol("wrapper"); -module.exports.implSymbol = Symbol("impl"); - -module.exports.wrapperForImpl = function (impl) { - return impl[module.exports.wrapperSymbol]; -}; - -module.exports.implForWrapper = function (wrapper) { - return wrapper[module.exports.implSymbol]; -}; - - - -/***/ }), - -/***/ 2940: -/***/ ((module) => { - -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) - - return wrapper - - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} - - -/***/ }), - -/***/ 2877: -/***/ ((module) => { - -module.exports = eval("require")("encoding"); - - -/***/ }), - -/***/ 132: -/***/ ((module) => { - -module.exports = eval("require")("supports-color"); - - -/***/ }), - -/***/ 9491: -/***/ ((module) => { - -"use strict"; -module.exports = require("assert"); - -/***/ }), - -/***/ 6113: -/***/ ((module) => { - -"use strict"; -module.exports = require("crypto"); - -/***/ }), - -/***/ 2361: -/***/ ((module) => { - -"use strict"; -module.exports = require("events"); - -/***/ }), - -/***/ 7147: -/***/ ((module) => { - -"use strict"; -module.exports = require("fs"); - -/***/ }), - -/***/ 3685: -/***/ ((module) => { - -"use strict"; -module.exports = require("http"); - -/***/ }), - -/***/ 5687: -/***/ ((module) => { - -"use strict"; -module.exports = require("https"); - -/***/ }), - -/***/ 1808: -/***/ ((module) => { - -"use strict"; -module.exports = require("net"); - -/***/ }), - -/***/ 7561: -/***/ ((module) => { - -"use strict"; -module.exports = require("node:fs"); - -/***/ }), - -/***/ 4492: -/***/ ((module) => { - -"use strict"; -module.exports = require("node:stream"); - -/***/ }), - -/***/ 2037: -/***/ ((module) => { - -"use strict"; -module.exports = require("os"); - -/***/ }), - -/***/ 1017: -/***/ ((module) => { - -"use strict"; -module.exports = require("path"); - -/***/ }), - -/***/ 5477: -/***/ ((module) => { - -"use strict"; -module.exports = require("punycode"); - -/***/ }), - -/***/ 3477: -/***/ ((module) => { - -"use strict"; -module.exports = require("querystring"); - -/***/ }), - -/***/ 2781: -/***/ ((module) => { - -"use strict"; -module.exports = require("stream"); - -/***/ }), - -/***/ 9512: -/***/ ((module) => { - -"use strict"; -module.exports = require("timers"); - -/***/ }), - -/***/ 4404: -/***/ ((module) => { - -"use strict"; -module.exports = require("tls"); - -/***/ }), - -/***/ 6224: -/***/ ((module) => { - -"use strict"; -module.exports = require("tty"); - -/***/ }), - -/***/ 7310: -/***/ ((module) => { - -"use strict"; -module.exports = require("url"); - -/***/ }), - -/***/ 3837: -/***/ ((module) => { - -"use strict"; -module.exports = require("util"); - -/***/ }), - -/***/ 1267: -/***/ ((module) => { - -"use strict"; -module.exports = require("worker_threads"); - -/***/ }), - -/***/ 9796: -/***/ ((module) => { - -"use strict"; -module.exports = require("zlib"); - -/***/ }), - -/***/ 1778: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); - - -/***/ }), - -/***/ 5860: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; -}; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -var _FormDataEncoder_instances, _FormDataEncoder_CRLF, _FormDataEncoder_CRLF_BYTES, _FormDataEncoder_CRLF_BYTES_LENGTH, _FormDataEncoder_DASHES, _FormDataEncoder_encoder, _FormDataEncoder_footer, _FormDataEncoder_form, _FormDataEncoder_options, _FormDataEncoder_getFieldHeader; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Encoder = exports.FormDataEncoder = void 0; -const createBoundary_1 = __importDefault(__nccwpck_require__(7956)); -const isPlainObject_1 = __importDefault(__nccwpck_require__(5240)); -const normalizeValue_1 = __importDefault(__nccwpck_require__(1391)); -const escapeName_1 = __importDefault(__nccwpck_require__(3864)); -const isFileLike_1 = __nccwpck_require__(6860); -const isFormData_1 = __nccwpck_require__(1633); -const defaultOptions = { - enableAdditionalHeaders: false -}; -class FormDataEncoder { - constructor(form, boundaryOrOptions, options) { - _FormDataEncoder_instances.add(this); - _FormDataEncoder_CRLF.set(this, "\r\n"); - _FormDataEncoder_CRLF_BYTES.set(this, void 0); - _FormDataEncoder_CRLF_BYTES_LENGTH.set(this, void 0); - _FormDataEncoder_DASHES.set(this, "-".repeat(2)); - _FormDataEncoder_encoder.set(this, new TextEncoder()); - _FormDataEncoder_footer.set(this, void 0); - _FormDataEncoder_form.set(this, void 0); - _FormDataEncoder_options.set(this, void 0); - if (!(0, isFormData_1.isFormData)(form)) { - throw new TypeError("Expected first argument to be a FormData instance."); + module.exports.serializeURL = serializeURL; + + module.exports.serializeURLOrigin = function (url) { + // https://url.spec.whatwg.org/#concept-url-origin + switch (url.scheme) { + case "blob": + try { + return module.exports.serializeURLOrigin( + module.exports.parseURL(url.path[0]) + ); + } catch (e) { + // serializing an opaque origin returns "null" + return "null"; + } + case "ftp": + case "gopher": + case "http": + case "https": + case "ws": + case "wss": + return serializeOrigin({ + scheme: url.scheme, + host: url.host, + port: url.port, + }); + case "file": + // spec says "exercise to the reader", chrome says "file://" + return "file://"; + default: + // serializing an opaque origin returns "null" + return "null"; } - let boundary; - if ((0, isPlainObject_1.default)(boundaryOrOptions)) { - options = boundaryOrOptions; + }; + + module.exports.basicURLParse = function (input, options) { + if (options === undefined) { + options = {}; } - else { - boundary = boundaryOrOptions; + + const usm = new URLStateMachine( + input, + options.baseURL, + options.encodingOverride, + options.url, + options.stateOverride + ); + if (usm.failure) { + return "failure"; } - if (!boundary) { - boundary = (0, createBoundary_1.default)(); + + return usm.url; + }; + + module.exports.setTheUsername = function (url, username) { + url.username = ""; + const decoded = punycode.ucs2.decode(username); + for (let i = 0; i < decoded.length; ++i) { + url.username += percentEncodeChar( + decoded[i], + isUserinfoPercentEncode + ); } - if (typeof boundary !== "string") { - throw new TypeError("Expected boundary argument to be a string."); + }; + + module.exports.setThePassword = function (url, password) { + url.password = ""; + const decoded = punycode.ucs2.decode(password); + for (let i = 0; i < decoded.length; ++i) { + url.password += percentEncodeChar( + decoded[i], + isUserinfoPercentEncode + ); } - if (options && !(0, isPlainObject_1.default)(options)) { - throw new TypeError("Expected options argument to be an object."); + }; + + module.exports.serializeHost = serializeHost; + + module.exports.cannotHaveAUsernamePasswordPort = + cannotHaveAUsernamePasswordPort; + + module.exports.serializeInteger = function (integer) { + return String(integer); + }; + + module.exports.parseURL = function (input, options) { + if (options === undefined) { + options = {}; } - __classPrivateFieldSet(this, _FormDataEncoder_form, form, "f"); - __classPrivateFieldSet(this, _FormDataEncoder_options, { ...defaultOptions, ...options }, "f"); - __classPrivateFieldSet(this, _FormDataEncoder_CRLF_BYTES, __classPrivateFieldGet(this, _FormDataEncoder_encoder, "f").encode(__classPrivateFieldGet(this, _FormDataEncoder_CRLF, "f")), "f"); - __classPrivateFieldSet(this, _FormDataEncoder_CRLF_BYTES_LENGTH, __classPrivateFieldGet(this, _FormDataEncoder_CRLF_BYTES, "f").byteLength, "f"); - this.boundary = `form-data-boundary-${boundary}`; - this.contentType = `multipart/form-data; boundary=${this.boundary}`; - __classPrivateFieldSet(this, _FormDataEncoder_footer, __classPrivateFieldGet(this, _FormDataEncoder_encoder, "f").encode(`${__classPrivateFieldGet(this, _FormDataEncoder_DASHES, "f")}${this.boundary}${__classPrivateFieldGet(this, _FormDataEncoder_DASHES, "f")}${__classPrivateFieldGet(this, _FormDataEncoder_CRLF, "f").repeat(2)}`), "f"); - this.contentLength = String(this.getContentLength()); - this.headers = Object.freeze({ - "Content-Type": this.contentType, - "Content-Length": this.contentLength + + // We don't handle blobs, so this just delegates: + return module.exports.basicURLParse(input, { + baseURL: options.baseURL, + encodingOverride: options.encodingOverride, }); - Object.defineProperties(this, { + }; + + /***/ + }, + + /***/ 3185: /***/ (module) => { + "use strict"; + + module.exports.mixin = function mixin(target, source) { + const keys = Object.getOwnPropertyNames(source); + for (let i = 0; i < keys.length; ++i) { + Object.defineProperty( + target, + keys[i], + Object.getOwnPropertyDescriptor(source, keys[i]) + ); + } + }; + + module.exports.wrapperSymbol = Symbol("wrapper"); + module.exports.implSymbol = Symbol("impl"); + + module.exports.wrapperForImpl = function (impl) { + return impl[module.exports.wrapperSymbol]; + }; + + module.exports.implForWrapper = function (wrapper) { + return wrapper[module.exports.implSymbol]; + }; + + /***/ + }, + + /***/ 2940: /***/ (module) => { + // Returns a wrapper function that returns a wrapped callback + // The wrapper function should do some stuff, and return a + // presumably different callback function. + // This makes sure that own properties are retained, so that + // decorations and such are not lost along the way. + module.exports = wrappy; + function wrappy(fn, cb) { + if (fn && cb) return wrappy(fn)(cb); + + if (typeof fn !== "function") + throw new TypeError("need wrapper function"); + + Object.keys(fn).forEach(function (k) { + wrapper[k] = fn[k]; + }); + + return wrapper; + + function wrapper() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + var ret = fn.apply(this, args); + var cb = args[args.length - 1]; + if (typeof ret === "function" && ret !== cb) { + Object.keys(cb).forEach(function (k) { + ret[k] = cb[k]; + }); + } + return ret; + } + } + + /***/ + }, + + /***/ 2877: /***/ (module) => { + module.exports = eval("require")("encoding"); + + /***/ + }, + + /***/ 132: /***/ (module) => { + module.exports = eval("require")("supports-color"); + + /***/ + }, + + /***/ 9491: /***/ (module) => { + "use strict"; + module.exports = require("assert"); + + /***/ + }, + + /***/ 6113: /***/ (module) => { + "use strict"; + module.exports = require("crypto"); + + /***/ + }, + + /***/ 2361: /***/ (module) => { + "use strict"; + module.exports = require("events"); + + /***/ + }, + + /***/ 7147: /***/ (module) => { + "use strict"; + module.exports = require("fs"); + + /***/ + }, + + /***/ 3685: /***/ (module) => { + "use strict"; + module.exports = require("http"); + + /***/ + }, + + /***/ 5687: /***/ (module) => { + "use strict"; + module.exports = require("https"); + + /***/ + }, + + /***/ 1808: /***/ (module) => { + "use strict"; + module.exports = require("net"); + + /***/ + }, + + /***/ 7561: /***/ (module) => { + "use strict"; + module.exports = require("node:fs"); + + /***/ + }, + + /***/ 4492: /***/ (module) => { + "use strict"; + module.exports = require("node:stream"); + + /***/ + }, + + /***/ 2037: /***/ (module) => { + "use strict"; + module.exports = require("os"); + + /***/ + }, + + /***/ 1017: /***/ (module) => { + "use strict"; + module.exports = require("path"); + + /***/ + }, + + /***/ 5477: /***/ (module) => { + "use strict"; + module.exports = require("punycode"); + + /***/ + }, + + /***/ 3477: /***/ (module) => { + "use strict"; + module.exports = require("querystring"); + + /***/ + }, + + /***/ 2781: /***/ (module) => { + "use strict"; + module.exports = require("stream"); + + /***/ + }, + + /***/ 9512: /***/ (module) => { + "use strict"; + module.exports = require("timers"); + + /***/ + }, + + /***/ 4404: /***/ (module) => { + "use strict"; + module.exports = require("tls"); + + /***/ + }, + + /***/ 6224: /***/ (module) => { + "use strict"; + module.exports = require("tty"); + + /***/ + }, + + /***/ 7310: /***/ (module) => { + "use strict"; + module.exports = require("url"); + + /***/ + }, + + /***/ 3837: /***/ (module) => { + "use strict"; + module.exports = require("util"); + + /***/ + }, + + /***/ 1267: /***/ (module) => { + "use strict"; + module.exports = require("worker_threads"); + + /***/ + }, + + /***/ 9796: /***/ (module) => { + "use strict"; + module.exports = require("zlib"); + + /***/ + }, + + /***/ 1778: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + /***/ + }, + + /***/ 5860: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; + + var __classPrivateFieldSet = + (this && this.__classPrivateFieldSet) || + function (receiver, state, value, kind, f) { + if (kind === "m") + throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) + throw new TypeError( + "Private accessor was defined without a setter" + ); + if ( + typeof state === "function" + ? receiver !== state || !f + : !state.has(receiver) + ) + throw new TypeError( + "Cannot write private member to an object whose class did not declare it" + ); + return ( + kind === "a" + ? f.call(receiver, value) + : f + ? (f.value = value) + : state.set(receiver, value), + value + ); + }; + var __classPrivateFieldGet = + (this && this.__classPrivateFieldGet) || + function (receiver, state, kind, f) { + if (kind === "a" && !f) + throw new TypeError( + "Private accessor was defined without a getter" + ); + if ( + typeof state === "function" + ? receiver !== state || !f + : !state.has(receiver) + ) + throw new TypeError( + "Cannot read private member from an object whose class did not declare it" + ); + return kind === "m" + ? f + : kind === "a" + ? f.call(receiver) + : f + ? f.value + : state.get(receiver); + }; + var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + var _FormDataEncoder_instances, + _FormDataEncoder_CRLF, + _FormDataEncoder_CRLF_BYTES, + _FormDataEncoder_CRLF_BYTES_LENGTH, + _FormDataEncoder_DASHES, + _FormDataEncoder_encoder, + _FormDataEncoder_footer, + _FormDataEncoder_form, + _FormDataEncoder_options, + _FormDataEncoder_getFieldHeader; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Encoder = exports.FormDataEncoder = void 0; + const createBoundary_1 = __importDefault(__nccwpck_require__(7956)); + const isPlainObject_1 = __importDefault(__nccwpck_require__(5240)); + const normalizeValue_1 = __importDefault(__nccwpck_require__(1391)); + const escapeName_1 = __importDefault(__nccwpck_require__(3864)); + const isFileLike_1 = __nccwpck_require__(6860); + const isFormData_1 = __nccwpck_require__(1633); + const defaultOptions = { + enableAdditionalHeaders: false, + }; + class FormDataEncoder { + constructor(form, boundaryOrOptions, options) { + _FormDataEncoder_instances.add(this); + _FormDataEncoder_CRLF.set(this, "\r\n"); + _FormDataEncoder_CRLF_BYTES.set(this, void 0); + _FormDataEncoder_CRLF_BYTES_LENGTH.set(this, void 0); + _FormDataEncoder_DASHES.set(this, "-".repeat(2)); + _FormDataEncoder_encoder.set(this, new TextEncoder()); + _FormDataEncoder_footer.set(this, void 0); + _FormDataEncoder_form.set(this, void 0); + _FormDataEncoder_options.set(this, void 0); + if (!(0, isFormData_1.isFormData)(form)) { + throw new TypeError( + "Expected first argument to be a FormData instance." + ); + } + let boundary; + if ((0, isPlainObject_1.default)(boundaryOrOptions)) { + options = boundaryOrOptions; + } else { + boundary = boundaryOrOptions; + } + if (!boundary) { + boundary = (0, createBoundary_1.default)(); + } + if (typeof boundary !== "string") { + throw new TypeError("Expected boundary argument to be a string."); + } + if (options && !(0, isPlainObject_1.default)(options)) { + throw new TypeError("Expected options argument to be an object."); + } + __classPrivateFieldSet(this, _FormDataEncoder_form, form, "f"); + __classPrivateFieldSet( + this, + _FormDataEncoder_options, + { ...defaultOptions, ...options }, + "f" + ); + __classPrivateFieldSet( + this, + _FormDataEncoder_CRLF_BYTES, + __classPrivateFieldGet(this, _FormDataEncoder_encoder, "f").encode( + __classPrivateFieldGet(this, _FormDataEncoder_CRLF, "f") + ), + "f" + ); + __classPrivateFieldSet( + this, + _FormDataEncoder_CRLF_BYTES_LENGTH, + __classPrivateFieldGet(this, _FormDataEncoder_CRLF_BYTES, "f") + .byteLength, + "f" + ); + this.boundary = `form-data-boundary-${boundary}`; + this.contentType = `multipart/form-data; boundary=${this.boundary}`; + __classPrivateFieldSet( + this, + _FormDataEncoder_footer, + __classPrivateFieldGet(this, _FormDataEncoder_encoder, "f").encode( + `${__classPrivateFieldGet(this, _FormDataEncoder_DASHES, "f")}${ + this.boundary + }${__classPrivateFieldGet( + this, + _FormDataEncoder_DASHES, + "f" + )}${__classPrivateFieldGet( + this, + _FormDataEncoder_CRLF, + "f" + ).repeat(2)}` + ), + "f" + ); + this.contentLength = String(this.getContentLength()); + this.headers = Object.freeze({ + "Content-Type": this.contentType, + "Content-Length": this.contentLength, + }); + Object.defineProperties(this, { boundary: { writable: false, configurable: false }, contentType: { writable: false, configurable: false }, contentLength: { writable: false, configurable: false }, - headers: { writable: false, configurable: false } - }); - } - getContentLength() { - let length = 0; - for (const [name, raw] of __classPrivateFieldGet(this, _FormDataEncoder_form, "f")) { - const value = (0, isFileLike_1.isFileLike)(raw) ? raw : __classPrivateFieldGet(this, _FormDataEncoder_encoder, "f").encode((0, normalizeValue_1.default)(raw)); - length += __classPrivateFieldGet(this, _FormDataEncoder_instances, "m", _FormDataEncoder_getFieldHeader).call(this, name, value).byteLength; - length += (0, isFileLike_1.isFileLike)(value) ? value.size : value.byteLength; - length += __classPrivateFieldGet(this, _FormDataEncoder_CRLF_BYTES_LENGTH, "f"); + headers: { writable: false, configurable: false }, + }); } - return length + __classPrivateFieldGet(this, _FormDataEncoder_footer, "f").byteLength; - } - *values() { - for (const [name, raw] of __classPrivateFieldGet(this, _FormDataEncoder_form, "f").entries()) { - const value = (0, isFileLike_1.isFileLike)(raw) ? raw : __classPrivateFieldGet(this, _FormDataEncoder_encoder, "f").encode((0, normalizeValue_1.default)(raw)); - yield __classPrivateFieldGet(this, _FormDataEncoder_instances, "m", _FormDataEncoder_getFieldHeader).call(this, name, value); + getContentLength() { + let length = 0; + for (const [name, raw] of __classPrivateFieldGet( + this, + _FormDataEncoder_form, + "f" + )) { + const value = (0, isFileLike_1.isFileLike)(raw) + ? raw + : __classPrivateFieldGet( + this, + _FormDataEncoder_encoder, + "f" + ).encode((0, normalizeValue_1.default)(raw)); + length += __classPrivateFieldGet( + this, + _FormDataEncoder_instances, + "m", + _FormDataEncoder_getFieldHeader + ).call(this, name, value).byteLength; + length += (0, isFileLike_1.isFileLike)(value) + ? value.size + : value.byteLength; + length += __classPrivateFieldGet( + this, + _FormDataEncoder_CRLF_BYTES_LENGTH, + "f" + ); + } + return ( + length + + __classPrivateFieldGet(this, _FormDataEncoder_footer, "f") + .byteLength + ); + } + *values() { + for (const [name, raw] of __classPrivateFieldGet( + this, + _FormDataEncoder_form, + "f" + ).entries()) { + const value = (0, isFileLike_1.isFileLike)(raw) + ? raw + : __classPrivateFieldGet( + this, + _FormDataEncoder_encoder, + "f" + ).encode((0, normalizeValue_1.default)(raw)); + yield __classPrivateFieldGet( + this, + _FormDataEncoder_instances, + "m", + _FormDataEncoder_getFieldHeader + ).call(this, name, value); yield value; - yield __classPrivateFieldGet(this, _FormDataEncoder_CRLF_BYTES, "f"); + yield __classPrivateFieldGet( + this, + _FormDataEncoder_CRLF_BYTES, + "f" + ); + } + yield __classPrivateFieldGet(this, _FormDataEncoder_footer, "f"); } - yield __classPrivateFieldGet(this, _FormDataEncoder_footer, "f"); - } - async *encode() { - for (const part of this.values()) { + async *encode() { + for (const part of this.values()) { if ((0, isFileLike_1.isFileLike)(part)) { - yield* part.stream(); + yield* part.stream(); + } else { + yield part; } - else { - yield part; + } + } + [((_FormDataEncoder_CRLF = new WeakMap()), + (_FormDataEncoder_CRLF_BYTES = new WeakMap()), + (_FormDataEncoder_CRLF_BYTES_LENGTH = new WeakMap()), + (_FormDataEncoder_DASHES = new WeakMap()), + (_FormDataEncoder_encoder = new WeakMap()), + (_FormDataEncoder_footer = new WeakMap()), + (_FormDataEncoder_form = new WeakMap()), + (_FormDataEncoder_options = new WeakMap()), + (_FormDataEncoder_instances = new WeakSet()), + (_FormDataEncoder_getFieldHeader = + function _FormDataEncoder_getFieldHeader(name, value) { + let header = ""; + header += `${__classPrivateFieldGet( + this, + _FormDataEncoder_DASHES, + "f" + )}${this.boundary}${__classPrivateFieldGet( + this, + _FormDataEncoder_CRLF, + "f" + )}`; + header += `Content-Disposition: form-data; name="${(0, + escapeName_1.default)(name)}"`; + if ((0, isFileLike_1.isFileLike)(value)) { + header += `; filename="${(0, escapeName_1.default)( + value.name + )}"${__classPrivateFieldGet(this, _FormDataEncoder_CRLF, "f")}`; + header += `Content-Type: ${ + value.type || "application/octet-stream" + }`; } + if ( + __classPrivateFieldGet(this, _FormDataEncoder_options, "f") + .enableAdditionalHeaders === true + ) { + header += `${__classPrivateFieldGet( + this, + _FormDataEncoder_CRLF, + "f" + )}Content-Length: ${ + (0, isFileLike_1.isFileLike)(value) + ? value.size + : value.byteLength + }`; + } + return __classPrivateFieldGet( + this, + _FormDataEncoder_encoder, + "f" + ).encode( + `${header}${__classPrivateFieldGet( + this, + _FormDataEncoder_CRLF, + "f" + ).repeat(2)}` + ); + }), + Symbol.iterator)]() { + return this.values(); } - } - [(_FormDataEncoder_CRLF = new WeakMap(), _FormDataEncoder_CRLF_BYTES = new WeakMap(), _FormDataEncoder_CRLF_BYTES_LENGTH = new WeakMap(), _FormDataEncoder_DASHES = new WeakMap(), _FormDataEncoder_encoder = new WeakMap(), _FormDataEncoder_footer = new WeakMap(), _FormDataEncoder_form = new WeakMap(), _FormDataEncoder_options = new WeakMap(), _FormDataEncoder_instances = new WeakSet(), _FormDataEncoder_getFieldHeader = function _FormDataEncoder_getFieldHeader(name, value) { - let header = ""; - header += `${__classPrivateFieldGet(this, _FormDataEncoder_DASHES, "f")}${this.boundary}${__classPrivateFieldGet(this, _FormDataEncoder_CRLF, "f")}`; - header += `Content-Disposition: form-data; name="${(0, escapeName_1.default)(name)}"`; - if ((0, isFileLike_1.isFileLike)(value)) { - header += `; filename="${(0, escapeName_1.default)(value.name)}"${__classPrivateFieldGet(this, _FormDataEncoder_CRLF, "f")}`; - header += `Content-Type: ${value.type || "application/octet-stream"}`; + [Symbol.asyncIterator]() { + return this.encode(); } - if (__classPrivateFieldGet(this, _FormDataEncoder_options, "f").enableAdditionalHeaders === true) { - header += `${__classPrivateFieldGet(this, _FormDataEncoder_CRLF, "f")}Content-Length: ${(0, isFileLike_1.isFileLike)(value) ? value.size : value.byteLength}`; + } + exports.FormDataEncoder = FormDataEncoder; + exports.Encoder = FormDataEncoder; + + /***/ + }, + + /***/ 6921: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + + /***/ + }, + + /***/ 8824: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; + + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); + var __exportStar = + (this && this.__exportStar) || + function (m, exports) { + for (var p in m) + if ( + p !== "default" && + !Object.prototype.hasOwnProperty.call(exports, p) + ) + __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + __exportStar(__nccwpck_require__(5860), exports); + __exportStar(__nccwpck_require__(1778), exports); + __exportStar(__nccwpck_require__(6921), exports); + __exportStar(__nccwpck_require__(6860), exports); + __exportStar(__nccwpck_require__(1633), exports); + + /***/ + }, + + /***/ 7956: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + const alphabet = "abcdefghijklmnopqrstuvwxyz0123456789"; + function createBoundary() { + let size = 16; + let res = ""; + while (size--) { + res += alphabet[(Math.random() * alphabet.length) << 0]; } - return __classPrivateFieldGet(this, _FormDataEncoder_encoder, "f").encode(`${header}${__classPrivateFieldGet(this, _FormDataEncoder_CRLF, "f").repeat(2)}`); - }, Symbol.iterator)]() { - return this.values(); - } - [Symbol.asyncIterator]() { - return this.encode(); - } -} -exports.FormDataEncoder = FormDataEncoder; -exports.Encoder = FormDataEncoder; + return res; + } + exports["default"] = createBoundary; + /***/ + }, -/***/ }), + /***/ 3864: /***/ (__unused_webpack_module, exports) => { + "use strict"; -/***/ 6921: -/***/ ((__unused_webpack_module, exports) => { + Object.defineProperty(exports, "__esModule", { value: true }); + const escapeName = (name) => + String(name) + .replace(/\r/g, "%0D") + .replace(/\n/g, "%0A") + .replace(/"/g, "%22"); + exports["default"] = escapeName; -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); + /***/ 6860: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; + var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isFileLike = void 0; + const isFunction_1 = __importDefault(__nccwpck_require__(2498)); + const isFileLike = (value) => + Boolean( + value && + typeof value === "object" && + (0, isFunction_1.default)(value.constructor) && + value[Symbol.toStringTag] === "File" && + (0, isFunction_1.default)(value.stream) && + value.name != null && + value.size != null && + value.lastModified != null + ); + exports.isFileLike = isFileLike; -/***/ }), + /***/ + }, -/***/ 8824: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + /***/ 1633: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; -"use strict"; + var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isFormDataLike = exports.isFormData = void 0; + const isFunction_1 = __importDefault(__nccwpck_require__(2498)); + const isFormData = (value) => + Boolean( + value && + (0, isFunction_1.default)(value.constructor) && + value[Symbol.toStringTag] === "FormData" && + (0, isFunction_1.default)(value.append) && + (0, isFunction_1.default)(value.getAll) && + (0, isFunction_1.default)(value.entries) && + (0, isFunction_1.default)(value[Symbol.iterator]) + ); + exports.isFormData = isFormData; + exports.isFormDataLike = exports.isFormData; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -__exportStar(__nccwpck_require__(5860), exports); -__exportStar(__nccwpck_require__(1778), exports); -__exportStar(__nccwpck_require__(6921), exports); -__exportStar(__nccwpck_require__(6860), exports); -__exportStar(__nccwpck_require__(1633), exports); + /***/ + }, + /***/ 2498: /***/ (__unused_webpack_module, exports) => { + "use strict"; -/***/ }), + Object.defineProperty(exports, "__esModule", { value: true }); + const isFunction = (value) => typeof value === "function"; + exports["default"] = isFunction; -/***/ 7956: -/***/ ((__unused_webpack_module, exports) => { + /***/ + }, -"use strict"; + /***/ 5240: /***/ (__unused_webpack_module, exports) => { + "use strict"; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const alphabet = "abcdefghijklmnopqrstuvwxyz0123456789"; -function createBoundary() { - let size = 16; - let res = ""; - while (size--) { - res += alphabet[(Math.random() * alphabet.length) << 0]; - } - return res; -} -exports["default"] = createBoundary; - - -/***/ }), - -/***/ 3864: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const escapeName = (name) => String(name) - .replace(/\r/g, "%0D") - .replace(/\n/g, "%0A") - .replace(/"/g, "%22"); -exports["default"] = escapeName; - - -/***/ }), - -/***/ 6860: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isFileLike = void 0; -const isFunction_1 = __importDefault(__nccwpck_require__(2498)); -const isFileLike = (value) => Boolean(value - && typeof value === "object" - && (0, isFunction_1.default)(value.constructor) - && value[Symbol.toStringTag] === "File" - && (0, isFunction_1.default)(value.stream) - && value.name != null - && value.size != null - && value.lastModified != null); -exports.isFileLike = isFileLike; - - -/***/ }), - -/***/ 1633: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isFormDataLike = exports.isFormData = void 0; -const isFunction_1 = __importDefault(__nccwpck_require__(2498)); -const isFormData = (value) => Boolean(value - && (0, isFunction_1.default)(value.constructor) - && value[Symbol.toStringTag] === "FormData" - && (0, isFunction_1.default)(value.append) - && (0, isFunction_1.default)(value.getAll) - && (0, isFunction_1.default)(value.entries) - && (0, isFunction_1.default)(value[Symbol.iterator])); -exports.isFormData = isFormData; -exports.isFormDataLike = exports.isFormData; - - -/***/ }), - -/***/ 2498: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const isFunction = (value) => (typeof value === "function"); -exports["default"] = isFunction; - - -/***/ }), - -/***/ 5240: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const getType = (value) => (Object.prototype.toString.call(value).slice(8, -1).toLowerCase()); -function isPlainObject(value) { - if (getType(value) !== "object") { - return false; - } - const pp = Object.getPrototypeOf(value); - if (pp === null || pp === undefined) { - return true; - } - const Ctor = pp.constructor && pp.constructor.toString(); - return Ctor === Object.toString(); -} -exports["default"] = isPlainObject; - - -/***/ }), - -/***/ 1391: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const normalizeValue = (value) => String(value) - .replace(/\r|\n/g, (match, i, str) => { - if ((match === "\r" && str[i + 1] !== "\n") - || (match === "\n" && str[i - 1] !== "\r")) { - return "\r\n"; - } - return match; -}); -exports["default"] = normalizeValue; - - -/***/ }), - -/***/ 6637: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -/*! Based on fetch-blob. MIT License. Jimmy Wärting & David Frank */ -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); -}; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; -}; -var _Blob_parts, _Blob_type, _Blob_size; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Blob = void 0; -const web_streams_polyfill_1 = __nccwpck_require__(6993); -const isFunction_1 = __nccwpck_require__(4245); -const blobHelpers_1 = __nccwpck_require__(7058); -class Blob { - constructor(blobParts = [], options = {}) { - _Blob_parts.set(this, []); - _Blob_type.set(this, ""); - _Blob_size.set(this, 0); - options !== null && options !== void 0 ? options : (options = {}); - if (typeof blobParts !== "object" || blobParts === null) { - throw new TypeError("Failed to construct 'Blob': " - + "The provided value cannot be converted to a sequence."); + Object.defineProperty(exports, "__esModule", { value: true }); + const getType = (value) => + Object.prototype.toString.call(value).slice(8, -1).toLowerCase(); + function isPlainObject(value) { + if (getType(value) !== "object") { + return false; } - if (!(0, isFunction_1.isFunction)(blobParts[Symbol.iterator])) { - throw new TypeError("Failed to construct 'Blob': " - + "The object must have a callable @@iterator property."); + const pp = Object.getPrototypeOf(value); + if (pp === null || pp === undefined) { + return true; } - if (typeof options !== "object" && !(0, isFunction_1.isFunction)(options)) { - throw new TypeError("Failed to construct 'Blob': parameter 2 cannot convert to dictionary."); - } - const encoder = new TextEncoder(); - for (const raw of blobParts) { + const Ctor = pp.constructor && pp.constructor.toString(); + return Ctor === Object.toString(); + } + exports["default"] = isPlainObject; + + /***/ + }, + + /***/ 1391: /***/ (__unused_webpack_module, exports) => { + "use strict"; + + Object.defineProperty(exports, "__esModule", { value: true }); + const normalizeValue = (value) => + String(value).replace(/\r|\n/g, (match, i, str) => { + if ( + (match === "\r" && str[i + 1] !== "\n") || + (match === "\n" && str[i - 1] !== "\r") + ) { + return "\r\n"; + } + return match; + }); + exports["default"] = normalizeValue; + + /***/ + }, + + /***/ 6637: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; + + /*! Based on fetch-blob. MIT License. Jimmy Wärting & David Frank */ + var __classPrivateFieldGet = + (this && this.__classPrivateFieldGet) || + function (receiver, state, kind, f) { + if (kind === "a" && !f) + throw new TypeError( + "Private accessor was defined without a getter" + ); + if ( + typeof state === "function" + ? receiver !== state || !f + : !state.has(receiver) + ) + throw new TypeError( + "Cannot read private member from an object whose class did not declare it" + ); + return kind === "m" + ? f + : kind === "a" + ? f.call(receiver) + : f + ? f.value + : state.get(receiver); + }; + var __classPrivateFieldSet = + (this && this.__classPrivateFieldSet) || + function (receiver, state, value, kind, f) { + if (kind === "m") + throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) + throw new TypeError( + "Private accessor was defined without a setter" + ); + if ( + typeof state === "function" + ? receiver !== state || !f + : !state.has(receiver) + ) + throw new TypeError( + "Cannot write private member to an object whose class did not declare it" + ); + return ( + kind === "a" + ? f.call(receiver, value) + : f + ? (f.value = value) + : state.set(receiver, value), + value + ); + }; + var _Blob_parts, _Blob_type, _Blob_size; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.Blob = void 0; + const web_streams_polyfill_1 = __nccwpck_require__(6993); + const isFunction_1 = __nccwpck_require__(4245); + const blobHelpers_1 = __nccwpck_require__(7058); + class Blob { + constructor(blobParts = [], options = {}) { + _Blob_parts.set(this, []); + _Blob_type.set(this, ""); + _Blob_size.set(this, 0); + options !== null && options !== void 0 ? options : (options = {}); + if (typeof blobParts !== "object" || blobParts === null) { + throw new TypeError( + "Failed to construct 'Blob': " + + "The provided value cannot be converted to a sequence." + ); + } + if (!(0, isFunction_1.isFunction)(blobParts[Symbol.iterator])) { + throw new TypeError( + "Failed to construct 'Blob': " + + "The object must have a callable @@iterator property." + ); + } + if ( + typeof options !== "object" && + !(0, isFunction_1.isFunction)(options) + ) { + throw new TypeError( + "Failed to construct 'Blob': parameter 2 cannot convert to dictionary." + ); + } + const encoder = new TextEncoder(); + for (const raw of blobParts) { let part; if (ArrayBuffer.isView(raw)) { - part = new Uint8Array(raw.buffer.slice(raw.byteOffset, raw.byteOffset + raw.byteLength)); + part = new Uint8Array( + raw.buffer.slice( + raw.byteOffset, + raw.byteOffset + raw.byteLength + ) + ); + } else if (raw instanceof ArrayBuffer) { + part = new Uint8Array(raw.slice(0)); + } else if (raw instanceof Blob) { + part = raw; + } else { + part = encoder.encode(String(raw)); } - else if (raw instanceof ArrayBuffer) { - part = new Uint8Array(raw.slice(0)); - } - else if (raw instanceof Blob) { - part = raw; - } - else { - part = encoder.encode(String(raw)); - } - __classPrivateFieldSet(this, _Blob_size, __classPrivateFieldGet(this, _Blob_size, "f") + (ArrayBuffer.isView(part) ? part.byteLength : part.size), "f"); + __classPrivateFieldSet( + this, + _Blob_size, + __classPrivateFieldGet(this, _Blob_size, "f") + + (ArrayBuffer.isView(part) ? part.byteLength : part.size), + "f" + ); __classPrivateFieldGet(this, _Blob_parts, "f").push(part); + } + const type = options.type === undefined ? "" : String(options.type); + __classPrivateFieldSet( + this, + _Blob_type, + /^[\x20-\x7E]*$/.test(type) ? type : "", + "f" + ); } - const type = options.type === undefined ? "" : String(options.type); - __classPrivateFieldSet(this, _Blob_type, /^[\x20-\x7E]*$/.test(type) ? type : "", "f"); - } - static [(_Blob_parts = new WeakMap(), _Blob_type = new WeakMap(), _Blob_size = new WeakMap(), Symbol.hasInstance)](value) { - return Boolean(value - && typeof value === "object" - && (0, isFunction_1.isFunction)(value.constructor) - && ((0, isFunction_1.isFunction)(value.stream) - || (0, isFunction_1.isFunction)(value.arrayBuffer)) - && /^(Blob|File)$/.test(value[Symbol.toStringTag])); - } - get type() { - return __classPrivateFieldGet(this, _Blob_type, "f"); - } - get size() { - return __classPrivateFieldGet(this, _Blob_size, "f"); - } - slice(start, end, contentType) { - return new Blob((0, blobHelpers_1.sliceBlob)(__classPrivateFieldGet(this, _Blob_parts, "f"), this.size, start, end), { - type: contentType - }); - } - async text() { - const decoder = new TextDecoder(); - let result = ""; - for await (const chunk of (0, blobHelpers_1.consumeBlobParts)(__classPrivateFieldGet(this, _Blob_parts, "f"))) { + static [((_Blob_parts = new WeakMap()), + (_Blob_type = new WeakMap()), + (_Blob_size = new WeakMap()), + Symbol.hasInstance)](value) { + return Boolean( + value && + typeof value === "object" && + (0, isFunction_1.isFunction)(value.constructor) && + ((0, isFunction_1.isFunction)(value.stream) || + (0, isFunction_1.isFunction)(value.arrayBuffer)) && + /^(Blob|File)$/.test(value[Symbol.toStringTag]) + ); + } + get type() { + return __classPrivateFieldGet(this, _Blob_type, "f"); + } + get size() { + return __classPrivateFieldGet(this, _Blob_size, "f"); + } + slice(start, end, contentType) { + return new Blob( + (0, blobHelpers_1.sliceBlob)( + __classPrivateFieldGet(this, _Blob_parts, "f"), + this.size, + start, + end + ), + { + type: contentType, + } + ); + } + async text() { + const decoder = new TextDecoder(); + let result = ""; + for await (const chunk of (0, blobHelpers_1.consumeBlobParts)( + __classPrivateFieldGet(this, _Blob_parts, "f") + )) { result += decoder.decode(chunk, { stream: true }); + } + result += decoder.decode(); + return result; } - result += decoder.decode(); - return result; - } - async arrayBuffer() { - const view = new Uint8Array(this.size); - let offset = 0; - for await (const chunk of (0, blobHelpers_1.consumeBlobParts)(__classPrivateFieldGet(this, _Blob_parts, "f"))) { + async arrayBuffer() { + const view = new Uint8Array(this.size); + let offset = 0; + for await (const chunk of (0, blobHelpers_1.consumeBlobParts)( + __classPrivateFieldGet(this, _Blob_parts, "f") + )) { view.set(chunk, offset); offset += chunk.length; + } + return view.buffer; } - return view.buffer; - } - stream() { - const iterator = (0, blobHelpers_1.consumeBlobParts)(__classPrivateFieldGet(this, _Blob_parts, "f"), true); - return new web_streams_polyfill_1.ReadableStream({ + stream() { + const iterator = (0, blobHelpers_1.consumeBlobParts)( + __classPrivateFieldGet(this, _Blob_parts, "f"), + true + ); + return new web_streams_polyfill_1.ReadableStream({ async pull(controller) { - const { value, done } = await iterator.next(); - if (done) { - return queueMicrotask(() => controller.close()); - } - controller.enqueue(value); + const { value, done } = await iterator.next(); + if (done) { + return queueMicrotask(() => controller.close()); + } + controller.enqueue(value); }, async cancel() { - await iterator.return(); - } - }); - } - get [Symbol.toStringTag]() { - return "Blob"; - } -} -exports.Blob = Blob; -Object.defineProperties(Blob.prototype, { - type: { enumerable: true }, - size: { enumerable: true }, - slice: { enumerable: true }, - stream: { enumerable: true }, - text: { enumerable: true }, - arrayBuffer: { enumerable: true } -}); - - -/***/ }), - -/***/ 3637: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; -}; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); -}; -var _File_name, _File_lastModified; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.File = void 0; -const Blob_1 = __nccwpck_require__(6637); -class File extends Blob_1.Blob { - constructor(fileBits, name, options = {}) { - super(fileBits, options); - _File_name.set(this, void 0); - _File_lastModified.set(this, 0); - if (arguments.length < 2) { - throw new TypeError("Failed to construct 'File': 2 arguments required, " - + `but only ${arguments.length} present.`); + await iterator.return(); + }, + }); } - __classPrivateFieldSet(this, _File_name, String(name), "f"); - const lastModified = options.lastModified === undefined - ? Date.now() - : Number(options.lastModified); - if (!Number.isNaN(lastModified)) { + get [Symbol.toStringTag]() { + return "Blob"; + } + } + exports.Blob = Blob; + Object.defineProperties(Blob.prototype, { + type: { enumerable: true }, + size: { enumerable: true }, + slice: { enumerable: true }, + stream: { enumerable: true }, + text: { enumerable: true }, + arrayBuffer: { enumerable: true }, + }); + + /***/ + }, + + /***/ 3637: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; + + var __classPrivateFieldSet = + (this && this.__classPrivateFieldSet) || + function (receiver, state, value, kind, f) { + if (kind === "m") + throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) + throw new TypeError( + "Private accessor was defined without a setter" + ); + if ( + typeof state === "function" + ? receiver !== state || !f + : !state.has(receiver) + ) + throw new TypeError( + "Cannot write private member to an object whose class did not declare it" + ); + return ( + kind === "a" + ? f.call(receiver, value) + : f + ? (f.value = value) + : state.set(receiver, value), + value + ); + }; + var __classPrivateFieldGet = + (this && this.__classPrivateFieldGet) || + function (receiver, state, kind, f) { + if (kind === "a" && !f) + throw new TypeError( + "Private accessor was defined without a getter" + ); + if ( + typeof state === "function" + ? receiver !== state || !f + : !state.has(receiver) + ) + throw new TypeError( + "Cannot read private member from an object whose class did not declare it" + ); + return kind === "m" + ? f + : kind === "a" + ? f.call(receiver) + : f + ? f.value + : state.get(receiver); + }; + var _File_name, _File_lastModified; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.File = void 0; + const Blob_1 = __nccwpck_require__(6637); + class File extends Blob_1.Blob { + constructor(fileBits, name, options = {}) { + super(fileBits, options); + _File_name.set(this, void 0); + _File_lastModified.set(this, 0); + if (arguments.length < 2) { + throw new TypeError( + "Failed to construct 'File': 2 arguments required, " + + `but only ${arguments.length} present.` + ); + } + __classPrivateFieldSet(this, _File_name, String(name), "f"); + const lastModified = + options.lastModified === undefined + ? Date.now() + : Number(options.lastModified); + if (!Number.isNaN(lastModified)) { __classPrivateFieldSet(this, _File_lastModified, lastModified, "f"); + } } - } - static [(_File_name = new WeakMap(), _File_lastModified = new WeakMap(), Symbol.hasInstance)](value) { - return value instanceof Blob_1.Blob - && value[Symbol.toStringTag] === "File" - && typeof value.name === "string"; - } - get name() { - return __classPrivateFieldGet(this, _File_name, "f"); - } - get lastModified() { - return __classPrivateFieldGet(this, _File_lastModified, "f"); - } - get webkitRelativePath() { - return ""; - } - get [Symbol.toStringTag]() { - return "File"; - } -} -exports.File = File; + static [((_File_name = new WeakMap()), + (_File_lastModified = new WeakMap()), + Symbol.hasInstance)](value) { + return ( + value instanceof Blob_1.Blob && + value[Symbol.toStringTag] === "File" && + typeof value.name === "string" + ); + } + get name() { + return __classPrivateFieldGet(this, _File_name, "f"); + } + get lastModified() { + return __classPrivateFieldGet(this, _File_lastModified, "f"); + } + get webkitRelativePath() { + return ""; + } + get [Symbol.toStringTag]() { + return "File"; + } + } + exports.File = File; + /***/ + }, -/***/ }), + /***/ 7268: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; -/***/ 7268: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); -}; -var _FormData_instances, _FormData_entries, _FormData_setEntry; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.FormData = void 0; -const util_1 = __nccwpck_require__(3837); -const File_1 = __nccwpck_require__(3637); -const isFile_1 = __nccwpck_require__(4529); -const isBlob_1 = __nccwpck_require__(5493); -const isFunction_1 = __nccwpck_require__(4245); -const deprecateConstructorEntries_1 = __nccwpck_require__(2689); -class FormData { - constructor(entries) { - _FormData_instances.add(this); - _FormData_entries.set(this, new Map()); - if (entries) { + var __classPrivateFieldGet = + (this && this.__classPrivateFieldGet) || + function (receiver, state, kind, f) { + if (kind === "a" && !f) + throw new TypeError( + "Private accessor was defined without a getter" + ); + if ( + typeof state === "function" + ? receiver !== state || !f + : !state.has(receiver) + ) + throw new TypeError( + "Cannot read private member from an object whose class did not declare it" + ); + return kind === "m" + ? f + : kind === "a" + ? f.call(receiver) + : f + ? f.value + : state.get(receiver); + }; + var _FormData_instances, _FormData_entries, _FormData_setEntry; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.FormData = void 0; + const util_1 = __nccwpck_require__(3837); + const File_1 = __nccwpck_require__(3637); + const isFile_1 = __nccwpck_require__(4529); + const isBlob_1 = __nccwpck_require__(5493); + const isFunction_1 = __nccwpck_require__(4245); + const deprecateConstructorEntries_1 = __nccwpck_require__(2689); + class FormData { + constructor(entries) { + _FormData_instances.add(this); + _FormData_entries.set(this, new Map()); + if (entries) { (0, deprecateConstructorEntries_1.deprecateConstructorEntries)(); - entries.forEach(({ name, value, fileName }) => this.append(name, value, fileName)); + entries.forEach(({ name, value, fileName }) => + this.append(name, value, fileName) + ); + } } - } - static [(_FormData_entries = new WeakMap(), _FormData_instances = new WeakSet(), Symbol.hasInstance)](value) { - return Boolean(value - && (0, isFunction_1.isFunction)(value.constructor) - && value[Symbol.toStringTag] === "FormData" - && (0, isFunction_1.isFunction)(value.append) - && (0, isFunction_1.isFunction)(value.set) - && (0, isFunction_1.isFunction)(value.get) - && (0, isFunction_1.isFunction)(value.getAll) - && (0, isFunction_1.isFunction)(value.has) - && (0, isFunction_1.isFunction)(value.delete) - && (0, isFunction_1.isFunction)(value.entries) - && (0, isFunction_1.isFunction)(value.values) - && (0, isFunction_1.isFunction)(value.keys) - && (0, isFunction_1.isFunction)(value[Symbol.iterator]) - && (0, isFunction_1.isFunction)(value.forEach)); - } - append(name, value, fileName) { - __classPrivateFieldGet(this, _FormData_instances, "m", _FormData_setEntry).call(this, { + static [((_FormData_entries = new WeakMap()), + (_FormData_instances = new WeakSet()), + Symbol.hasInstance)](value) { + return Boolean( + value && + (0, isFunction_1.isFunction)(value.constructor) && + value[Symbol.toStringTag] === "FormData" && + (0, isFunction_1.isFunction)(value.append) && + (0, isFunction_1.isFunction)(value.set) && + (0, isFunction_1.isFunction)(value.get) && + (0, isFunction_1.isFunction)(value.getAll) && + (0, isFunction_1.isFunction)(value.has) && + (0, isFunction_1.isFunction)(value.delete) && + (0, isFunction_1.isFunction)(value.entries) && + (0, isFunction_1.isFunction)(value.values) && + (0, isFunction_1.isFunction)(value.keys) && + (0, isFunction_1.isFunction)(value[Symbol.iterator]) && + (0, isFunction_1.isFunction)(value.forEach) + ); + } + append(name, value, fileName) { + __classPrivateFieldGet( + this, + _FormData_instances, + "m", + _FormData_setEntry + ).call(this, { name, fileName, append: true, rawValue: value, - argsLength: arguments.length - }); - } - set(name, value, fileName) { - __classPrivateFieldGet(this, _FormData_instances, "m", _FormData_setEntry).call(this, { + argsLength: arguments.length, + }); + } + set(name, value, fileName) { + __classPrivateFieldGet( + this, + _FormData_instances, + "m", + _FormData_setEntry + ).call(this, { name, fileName, append: false, rawValue: value, - argsLength: arguments.length - }); - } - get(name) { - const field = __classPrivateFieldGet(this, _FormData_entries, "f").get(String(name)); - if (!field) { + argsLength: arguments.length, + }); + } + get(name) { + const field = __classPrivateFieldGet( + this, + _FormData_entries, + "f" + ).get(String(name)); + if (!field) { return null; + } + return field[0]; } - return field[0]; - } - getAll(name) { - const field = __classPrivateFieldGet(this, _FormData_entries, "f").get(String(name)); - if (!field) { + getAll(name) { + const field = __classPrivateFieldGet( + this, + _FormData_entries, + "f" + ).get(String(name)); + if (!field) { return []; + } + return field.slice(); } - return field.slice(); - } - has(name) { - return __classPrivateFieldGet(this, _FormData_entries, "f").has(String(name)); - } - delete(name) { - __classPrivateFieldGet(this, _FormData_entries, "f").delete(String(name)); - } - *keys() { - for (const key of __classPrivateFieldGet(this, _FormData_entries, "f").keys()) { + has(name) { + return __classPrivateFieldGet(this, _FormData_entries, "f").has( + String(name) + ); + } + delete(name) { + __classPrivateFieldGet(this, _FormData_entries, "f").delete( + String(name) + ); + } + *keys() { + for (const key of __classPrivateFieldGet( + this, + _FormData_entries, + "f" + ).keys()) { yield key; + } } - } - *entries() { - for (const name of this.keys()) { + *entries() { + for (const name of this.keys()) { const values = this.getAll(name); for (const value of values) { - yield [name, value]; + yield [name, value]; } + } } - } - *values() { - for (const [, value] of this) { + *values() { + for (const [, value] of this) { yield value; + } } - } - [(_FormData_setEntry = function _FormData_setEntry({ name, rawValue, append, fileName, argsLength }) { - const methodName = append ? "append" : "set"; - if (argsLength < 2) { - throw new TypeError(`Failed to execute '${methodName}' on 'FormData': ` - + `2 arguments required, but only ${argsLength} present.`); - } - name = String(name); - let value; - if ((0, isFile_1.isFile)(rawValue)) { - value = fileName === undefined + [((_FormData_setEntry = function _FormData_setEntry({ + name, + rawValue, + append, + fileName, + argsLength, + }) { + const methodName = append ? "append" : "set"; + if (argsLength < 2) { + throw new TypeError( + `Failed to execute '${methodName}' on 'FormData': ` + + `2 arguments required, but only ${argsLength} present.` + ); + } + name = String(name); + let value; + if ((0, isFile_1.isFile)(rawValue)) { + value = + fileName === undefined ? rawValue : new File_1.File([rawValue], fileName, { type: rawValue.type, - lastModified: rawValue.lastModified - }); - } - else if ((0, isBlob_1.isBlob)(rawValue)) { - value = new File_1.File([rawValue], fileName === undefined ? "blob" : fileName, { - type: rawValue.type - }); - } - else if (fileName) { - throw new TypeError(`Failed to execute '${methodName}' on 'FormData': ` - + "parameter 2 is not of type 'Blob'."); - } - else { + lastModified: rawValue.lastModified, + }); + } else if ((0, isBlob_1.isBlob)(rawValue)) { + value = new File_1.File( + [rawValue], + fileName === undefined ? "blob" : fileName, + { + type: rawValue.type, + } + ); + } else if (fileName) { + throw new TypeError( + `Failed to execute '${methodName}' on 'FormData': ` + + "parameter 2 is not of type 'Blob'." + ); + } else { value = String(rawValue); + } + const values = __classPrivateFieldGet( + this, + _FormData_entries, + "f" + ).get(name); + if (!values) { + return void __classPrivateFieldGet( + this, + _FormData_entries, + "f" + ).set(name, [value]); + } + if (!append) { + return void __classPrivateFieldGet( + this, + _FormData_entries, + "f" + ).set(name, [value]); + } + values.push(value); + }), + Symbol.iterator)]() { + return this.entries(); } - const values = __classPrivateFieldGet(this, _FormData_entries, "f").get(name); - if (!values) { - return void __classPrivateFieldGet(this, _FormData_entries, "f").set(name, [value]); - } - if (!append) { - return void __classPrivateFieldGet(this, _FormData_entries, "f").set(name, [value]); - } - values.push(value); - }, Symbol.iterator)]() { - return this.entries(); - } - forEach(callback, thisArg) { - for (const [name, value] of this) { + forEach(callback, thisArg) { + for (const [name, value] of this) { callback.call(thisArg, value, name, this); + } } - } - get [Symbol.toStringTag]() { - return "FormData"; - } - [util_1.inspect.custom]() { - return this[Symbol.toStringTag]; - } -} -exports.FormData = FormData; + get [Symbol.toStringTag]() { + return "FormData"; + } + [util_1.inspect.custom]() { + return this[Symbol.toStringTag]; + } + } + exports.FormData = FormData; + /***/ + }, -/***/ }), + /***/ 7058: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; -/***/ 7058: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { - -"use strict"; - -/*! Based on fetch-blob. MIT License. Jimmy Wärting & David Frank */ -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.sliceBlob = exports.consumeBlobParts = void 0; -const isFunction_1 = __nccwpck_require__(4245); -const CHUNK_SIZE = 65536; -async function* clonePart(part) { - const end = part.byteOffset + part.byteLength; - let position = part.byteOffset; - while (position !== end) { - const size = Math.min(end - position, CHUNK_SIZE); - const chunk = part.buffer.slice(position, position + size); - position += chunk.byteLength; - yield new Uint8Array(chunk); - } -} -async function* consumeNodeBlob(blob) { - let position = 0; - while (position !== blob.size) { - const chunk = blob.slice(position, Math.min(blob.size, position + CHUNK_SIZE)); - const buffer = await chunk.arrayBuffer(); - position += buffer.byteLength; - yield new Uint8Array(buffer); - } -} -async function* consumeBlobParts(parts, clone = false) { - for (const part of parts) { - if (ArrayBuffer.isView(part)) { + /*! Based on fetch-blob. MIT License. Jimmy Wärting & David Frank */ + Object.defineProperty(exports, "__esModule", { value: true }); + exports.sliceBlob = exports.consumeBlobParts = void 0; + const isFunction_1 = __nccwpck_require__(4245); + const CHUNK_SIZE = 65536; + async function* clonePart(part) { + const end = part.byteOffset + part.byteLength; + let position = part.byteOffset; + while (position !== end) { + const size = Math.min(end - position, CHUNK_SIZE); + const chunk = part.buffer.slice(position, position + size); + position += chunk.byteLength; + yield new Uint8Array(chunk); + } + } + async function* consumeNodeBlob(blob) { + let position = 0; + while (position !== blob.size) { + const chunk = blob.slice( + position, + Math.min(blob.size, position + CHUNK_SIZE) + ); + const buffer = await chunk.arrayBuffer(); + position += buffer.byteLength; + yield new Uint8Array(buffer); + } + } + async function* consumeBlobParts(parts, clone = false) { + for (const part of parts) { + if (ArrayBuffer.isView(part)) { if (clone) { - yield* clonePart(part); + yield* clonePart(part); + } else { + yield part; } - else { - yield part; - } - } - else if ((0, isFunction_1.isFunction)(part.stream)) { + } else if ((0, isFunction_1.isFunction)(part.stream)) { yield* part.stream(); - } - else { + } else { yield* consumeNodeBlob(part); + } } - } -} -exports.consumeBlobParts = consumeBlobParts; -function* sliceBlob(blobParts, blobSize, start = 0, end) { - end !== null && end !== void 0 ? end : (end = blobSize); - let relativeStart = start < 0 - ? Math.max(blobSize + start, 0) - : Math.min(start, blobSize); - let relativeEnd = end < 0 - ? Math.max(blobSize + end, 0) - : Math.min(end, blobSize); - const span = Math.max(relativeEnd - relativeStart, 0); - let added = 0; - for (const part of blobParts) { - if (added >= span) { + } + exports.consumeBlobParts = consumeBlobParts; + function* sliceBlob(blobParts, blobSize, start = 0, end) { + end !== null && end !== void 0 ? end : (end = blobSize); + let relativeStart = + start < 0 ? Math.max(blobSize + start, 0) : Math.min(start, blobSize); + let relativeEnd = + end < 0 ? Math.max(blobSize + end, 0) : Math.min(end, blobSize); + const span = Math.max(relativeEnd - relativeStart, 0); + let added = 0; + for (const part of blobParts) { + if (added >= span) { break; - } - const partSize = ArrayBuffer.isView(part) ? part.byteLength : part.size; - if (relativeStart && partSize <= relativeStart) { + } + const partSize = ArrayBuffer.isView(part) + ? part.byteLength + : part.size; + if (relativeStart && partSize <= relativeStart) { relativeStart -= partSize; relativeEnd -= partSize; - } - else { + } else { let chunk; if (ArrayBuffer.isView(part)) { - chunk = part.subarray(relativeStart, Math.min(partSize, relativeEnd)); - added += chunk.byteLength; - } - else { - chunk = part.slice(relativeStart, Math.min(partSize, relativeEnd)); - added += chunk.size; + chunk = part.subarray( + relativeStart, + Math.min(partSize, relativeEnd) + ); + added += chunk.byteLength; + } else { + chunk = part.slice( + relativeStart, + Math.min(partSize, relativeEnd) + ); + added += chunk.size; } relativeEnd -= partSize; relativeStart = 0; yield chunk; + } } - } -} -exports.sliceBlob = sliceBlob; + } + exports.sliceBlob = sliceBlob; + /***/ + }, -/***/ }), + /***/ 2689: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; -/***/ 2689: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.deprecateConstructorEntries = void 0; + const util_1 = __nccwpck_require__(3837); + exports.deprecateConstructorEntries = (0, util_1.deprecate)(() => {}, + 'Constructor "entries" argument is not spec-compliant ' + "and will be removed in next major release."); -"use strict"; + /***/ + }, -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.deprecateConstructorEntries = void 0; -const util_1 = __nccwpck_require__(3837); -exports.deprecateConstructorEntries = (0, util_1.deprecate)(() => { }, "Constructor \"entries\" argument is not spec-compliant " - + "and will be removed in next major release."); + /***/ 8735: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; - -/***/ }), - -/***/ 8735: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; -}; -var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -var _FileFromPath_path, _FileFromPath_start; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.fileFromPath = exports.fileFromPathSync = void 0; -const fs_1 = __nccwpck_require__(7147); -const path_1 = __nccwpck_require__(1017); -const node_domexception_1 = __importDefault(__nccwpck_require__(7760)); -const File_1 = __nccwpck_require__(3637); -const isPlainObject_1 = __importDefault(__nccwpck_require__(4722)); -__exportStar(__nccwpck_require__(4529), exports); -const MESSAGE = "The requested file could not be read, " - + "typically due to permission problems that have occurred after a reference " - + "to a file was acquired."; -class FileFromPath { - constructor(input) { - _FileFromPath_path.set(this, void 0); - _FileFromPath_start.set(this, void 0); - __classPrivateFieldSet(this, _FileFromPath_path, input.path, "f"); - __classPrivateFieldSet(this, _FileFromPath_start, input.start || 0, "f"); - this.name = (0, path_1.basename)(__classPrivateFieldGet(this, _FileFromPath_path, "f")); - this.size = input.size; - this.lastModified = input.lastModified; - } - slice(start, end) { - return new FileFromPath({ + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); + var __exportStar = + (this && this.__exportStar) || + function (m, exports) { + for (var p in m) + if ( + p !== "default" && + !Object.prototype.hasOwnProperty.call(exports, p) + ) + __createBinding(exports, m, p); + }; + var __classPrivateFieldSet = + (this && this.__classPrivateFieldSet) || + function (receiver, state, value, kind, f) { + if (kind === "m") + throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) + throw new TypeError( + "Private accessor was defined without a setter" + ); + if ( + typeof state === "function" + ? receiver !== state || !f + : !state.has(receiver) + ) + throw new TypeError( + "Cannot write private member to an object whose class did not declare it" + ); + return ( + kind === "a" + ? f.call(receiver, value) + : f + ? (f.value = value) + : state.set(receiver, value), + value + ); + }; + var __classPrivateFieldGet = + (this && this.__classPrivateFieldGet) || + function (receiver, state, kind, f) { + if (kind === "a" && !f) + throw new TypeError( + "Private accessor was defined without a getter" + ); + if ( + typeof state === "function" + ? receiver !== state || !f + : !state.has(receiver) + ) + throw new TypeError( + "Cannot read private member from an object whose class did not declare it" + ); + return kind === "m" + ? f + : kind === "a" + ? f.call(receiver) + : f + ? f.value + : state.get(receiver); + }; + var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + var _FileFromPath_path, _FileFromPath_start; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.fileFromPath = exports.fileFromPathSync = void 0; + const fs_1 = __nccwpck_require__(7147); + const path_1 = __nccwpck_require__(1017); + const node_domexception_1 = __importDefault(__nccwpck_require__(7760)); + const File_1 = __nccwpck_require__(3637); + const isPlainObject_1 = __importDefault(__nccwpck_require__(4722)); + __exportStar(__nccwpck_require__(4529), exports); + const MESSAGE = + "The requested file could not be read, " + + "typically due to permission problems that have occurred after a reference " + + "to a file was acquired."; + class FileFromPath { + constructor(input) { + _FileFromPath_path.set(this, void 0); + _FileFromPath_start.set(this, void 0); + __classPrivateFieldSet(this, _FileFromPath_path, input.path, "f"); + __classPrivateFieldSet( + this, + _FileFromPath_start, + input.start || 0, + "f" + ); + this.name = (0, path_1.basename)( + __classPrivateFieldGet(this, _FileFromPath_path, "f") + ); + this.size = input.size; + this.lastModified = input.lastModified; + } + slice(start, end) { + return new FileFromPath({ path: __classPrivateFieldGet(this, _FileFromPath_path, "f"), lastModified: this.lastModified, size: end - start, - start - }); - } - async *stream() { - const { mtimeMs } = await fs_1.promises.stat(__classPrivateFieldGet(this, _FileFromPath_path, "f")); - if (mtimeMs > this.lastModified) { + start, + }); + } + async *stream() { + const { mtimeMs } = await fs_1.promises.stat( + __classPrivateFieldGet(this, _FileFromPath_path, "f") + ); + if (mtimeMs > this.lastModified) { throw new node_domexception_1.default(MESSAGE, "NotReadableError"); - } - if (this.size) { - yield* (0, fs_1.createReadStream)(__classPrivateFieldGet(this, _FileFromPath_path, "f"), { + } + if (this.size) { + yield* (0, fs_1.createReadStream)( + __classPrivateFieldGet(this, _FileFromPath_path, "f"), + { start: __classPrivateFieldGet(this, _FileFromPath_start, "f"), - end: __classPrivateFieldGet(this, _FileFromPath_start, "f") + this.size - 1 - }); + end: + __classPrivateFieldGet(this, _FileFromPath_start, "f") + + this.size - + 1, + } + ); + } } - } - get [(_FileFromPath_path = new WeakMap(), _FileFromPath_start = new WeakMap(), Symbol.toStringTag)]() { - return "File"; - } -} -function createFileFromPath(path, { mtimeMs, size }, filenameOrOptions, options = {}) { - let filename; - if ((0, isPlainObject_1.default)(filenameOrOptions)) { - [options, filename] = [filenameOrOptions, undefined]; - } - else { - filename = filenameOrOptions; - } - const file = new FileFromPath({ path, size, lastModified: mtimeMs }); - if (!filename) { - filename = file.name; - } - return new File_1.File([file], filename, { - ...options, lastModified: file.lastModified - }); -} -function fileFromPathSync(path, filenameOrOptions, options = {}) { - const stats = (0, fs_1.statSync)(path); - return createFileFromPath(path, stats, filenameOrOptions, options); -} -exports.fileFromPathSync = fileFromPathSync; -async function fileFromPath(path, filenameOrOptions, options) { - const stats = await fs_1.promises.stat(path); - return createFileFromPath(path, stats, filenameOrOptions, options); -} -exports.fileFromPath = fileFromPath; + get [((_FileFromPath_path = new WeakMap()), + (_FileFromPath_start = new WeakMap()), + Symbol.toStringTag)]() { + return "File"; + } + } + function createFileFromPath( + path, + { mtimeMs, size }, + filenameOrOptions, + options = {} + ) { + let filename; + if ((0, isPlainObject_1.default)(filenameOrOptions)) { + [options, filename] = [filenameOrOptions, undefined]; + } else { + filename = filenameOrOptions; + } + const file = new FileFromPath({ path, size, lastModified: mtimeMs }); + if (!filename) { + filename = file.name; + } + return new File_1.File([file], filename, { + ...options, + lastModified: file.lastModified, + }); + } + function fileFromPathSync(path, filenameOrOptions, options = {}) { + const stats = (0, fs_1.statSync)(path); + return createFileFromPath(path, stats, filenameOrOptions, options); + } + exports.fileFromPathSync = fileFromPathSync; + async function fileFromPath(path, filenameOrOptions, options) { + const stats = await fs_1.promises.stat(path); + return createFileFromPath(path, stats, filenameOrOptions, options); + } + exports.fileFromPath = fileFromPath; + /***/ + }, -/***/ }), + /***/ 880: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; -/***/ 880: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { + enumerable: true, + get: function () { + return m[k]; + }, + }); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); + var __exportStar = + (this && this.__exportStar) || + function (m, exports) { + for (var p in m) + if ( + p !== "default" && + !Object.prototype.hasOwnProperty.call(exports, p) + ) + __createBinding(exports, m, p); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + __exportStar(__nccwpck_require__(7268), exports); + __exportStar(__nccwpck_require__(6637), exports); + __exportStar(__nccwpck_require__(3637), exports); -"use strict"; + /***/ + }, -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -__exportStar(__nccwpck_require__(7268), exports); -__exportStar(__nccwpck_require__(6637), exports); -__exportStar(__nccwpck_require__(3637), exports); + /***/ 5493: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isBlob = void 0; + const Blob_1 = __nccwpck_require__(6637); + const isBlob = (value) => value instanceof Blob_1.Blob; + exports.isBlob = isBlob; -/***/ }), + /***/ + }, -/***/ 5493: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ 4529: /***/ ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) => { + "use strict"; -"use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isFile = void 0; + const File_1 = __nccwpck_require__(3637); + const isFile = (value) => value instanceof File_1.File; + exports.isFile = isFile; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isBlob = void 0; -const Blob_1 = __nccwpck_require__(6637); -const isBlob = (value) => value instanceof Blob_1.Blob; -exports.isBlob = isBlob; + /***/ + }, + /***/ 4245: /***/ (__unused_webpack_module, exports) => { + "use strict"; -/***/ }), + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isFunction = void 0; + const isFunction = (value) => typeof value === "function"; + exports.isFunction = isFunction; -/***/ 4529: -/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + /***/ + }, -"use strict"; + /***/ 4722: /***/ (__unused_webpack_module, exports) => { + "use strict"; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isFile = void 0; -const File_1 = __nccwpck_require__(3637); -const isFile = (value) => value instanceof File_1.File; -exports.isFile = isFile; + Object.defineProperty(exports, "__esModule", { value: true }); + const getType = (value) => + Object.prototype.toString.call(value).slice(8, -1).toLowerCase(); + function isPlainObject(value) { + if (getType(value) !== "object") { + return false; + } + const pp = Object.getPrototypeOf(value); + if (pp === null || pp === undefined) { + return true; + } + const Ctor = pp.constructor && pp.constructor.toString(); + return Ctor === Object.toString(); + } + exports["default"] = isPlainObject; + /***/ + }, -/***/ }), + /***/ 5822: /***/ (__unused_webpack_module, exports) => { + "use strict"; -/***/ 4245: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.isFunction = void 0; -const isFunction = (value) => (typeof value === "function"); -exports.isFunction = isFunction; - - -/***/ }), - -/***/ 4722: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const getType = (value) => (Object.prototype.toString.call(value).slice(8, -1).toLowerCase()); -function isPlainObject(value) { - if (getType(value) !== "object") { - return false; - } - const pp = Object.getPrototypeOf(value); - if (pp === null || pp === undefined) { - return true; - } - const Ctor = pp.constructor && pp.constructor.toString(); - return Ctor === Object.toString(); -} -exports["default"] = isPlainObject; - - -/***/ }), - -/***/ 5822: -/***/ ((__unused_webpack_module, exports) => { - -"use strict"; - -// translate the various posix character classes into unicode properties -// this works across all unicode locales -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.parseClass = void 0; -// { : [, /u flag required, negated] -const posixClasses = { - '[:alnum:]': ['\\p{L}\\p{Nl}\\p{Nd}', true], - '[:alpha:]': ['\\p{L}\\p{Nl}', true], - '[:ascii:]': ['\\x' + '00-\\x' + '7f', false], - '[:blank:]': ['\\p{Zs}\\t', true], - '[:cntrl:]': ['\\p{Cc}', true], - '[:digit:]': ['\\p{Nd}', true], - '[:graph:]': ['\\p{Z}\\p{C}', true, true], - '[:lower:]': ['\\p{Ll}', true], - '[:print:]': ['\\p{C}', true], - '[:punct:]': ['\\p{P}', true], - '[:space:]': ['\\p{Z}\\t\\r\\n\\v\\f', true], - '[:upper:]': ['\\p{Lu}', true], - '[:word:]': ['\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}', true], - '[:xdigit:]': ['A-Fa-f0-9', false], -}; -// only need to escape a few things inside of brace expressions -// escapes: [ \ ] - -const braceEscape = (s) => s.replace(/[[\]\\-]/g, '\\$&'); -// escape all regexp magic characters -const regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); -// everything has already been escaped, we just have to join -const rangesToString = (ranges) => ranges.join(''); -// takes a glob string at a posix brace expression, and returns -// an equivalent regular expression source, and boolean indicating -// whether the /u flag needs to be applied, and the number of chars -// consumed to parse the character class. -// This also removes out of order ranges, and returns ($.) if the -// entire class just no good. -const parseClass = (glob, position) => { - const pos = position; - /* c8 ignore start */ - if (glob.charAt(pos) !== '[') { - throw new Error('not in a brace expression'); - } - /* c8 ignore stop */ - const ranges = []; - const negs = []; - let i = pos + 1; - let sawStart = false; - let uflag = false; - let escaping = false; - let negate = false; - let endPos = pos; - let rangeStart = ''; - WHILE: while (i < glob.length) { - const c = glob.charAt(i); - if ((c === '!' || c === '^') && i === pos + 1) { + // translate the various posix character classes into unicode properties + // this works across all unicode locales + Object.defineProperty(exports, "__esModule", { value: true }); + exports.parseClass = void 0; + // { : [, /u flag required, negated] + const posixClasses = { + "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", true], + "[:alpha:]": ["\\p{L}\\p{Nl}", true], + "[:ascii:]": ["\\x" + "00-\\x" + "7f", false], + "[:blank:]": ["\\p{Zs}\\t", true], + "[:cntrl:]": ["\\p{Cc}", true], + "[:digit:]": ["\\p{Nd}", true], + "[:graph:]": ["\\p{Z}\\p{C}", true, true], + "[:lower:]": ["\\p{Ll}", true], + "[:print:]": ["\\p{C}", true], + "[:punct:]": ["\\p{P}", true], + "[:space:]": ["\\p{Z}\\t\\r\\n\\v\\f", true], + "[:upper:]": ["\\p{Lu}", true], + "[:word:]": ["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}", true], + "[:xdigit:]": ["A-Fa-f0-9", false], + }; + // only need to escape a few things inside of brace expressions + // escapes: [ \ ] - + const braceEscape = (s) => s.replace(/[[\]\\-]/g, "\\$&"); + // escape all regexp magic characters + const regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + // everything has already been escaped, we just have to join + const rangesToString = (ranges) => ranges.join(""); + // takes a glob string at a posix brace expression, and returns + // an equivalent regular expression source, and boolean indicating + // whether the /u flag needs to be applied, and the number of chars + // consumed to parse the character class. + // This also removes out of order ranges, and returns ($.) if the + // entire class just no good. + const parseClass = (glob, position) => { + const pos = position; + /* c8 ignore start */ + if (glob.charAt(pos) !== "[") { + throw new Error("not in a brace expression"); + } + /* c8 ignore stop */ + const ranges = []; + const negs = []; + let i = pos + 1; + let sawStart = false; + let uflag = false; + let escaping = false; + let negate = false; + let endPos = pos; + let rangeStart = ""; + WHILE: while (i < glob.length) { + const c = glob.charAt(i); + if ((c === "!" || c === "^") && i === pos + 1) { negate = true; i++; continue; - } - if (c === ']' && sawStart && !escaping) { + } + if (c === "]" && sawStart && !escaping) { endPos = i + 1; break; - } - sawStart = true; - if (c === '\\') { + } + sawStart = true; + if (c === "\\") { if (!escaping) { - escaping = true; - i++; - continue; + escaping = true; + i++; + continue; } // escaped \ char, fall through and treat like normal char - } - if (c === '[' && !escaping) { + } + if (c === "[" && !escaping) { // either a posix class, a collation equivalent, or just a [ for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) { - if (glob.startsWith(cls, i)) { - // invalid, [a-[] is fine, but not [a-[:alpha]] - if (rangeStart) { - return ['$.', false, glob.length - pos, true]; - } - i += cls.length; - if (neg) - negs.push(unip); - else - ranges.push(unip); - uflag = uflag || u; - continue WHILE; + if (glob.startsWith(cls, i)) { + // invalid, [a-[] is fine, but not [a-[:alpha]] + if (rangeStart) { + return ["$.", false, glob.length - pos, true]; } + i += cls.length; + if (neg) negs.push(unip); + else ranges.push(unip); + uflag = uflag || u; + continue WHILE; + } } - } - // now it's just a normal character, effectively - escaping = false; - if (rangeStart) { + } + // now it's just a normal character, effectively + escaping = false; + if (rangeStart) { // throw this range away if it's not valid, but others // can still match. if (c > rangeStart) { - ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c)); + ranges.push(braceEscape(rangeStart) + "-" + braceEscape(c)); + } else if (c === rangeStart) { + ranges.push(braceEscape(c)); } - else if (c === rangeStart) { - ranges.push(braceEscape(c)); - } - rangeStart = ''; + rangeStart = ""; i++; continue; - } - // now might be the start of a range. - // can be either c-d or c-] or c] or c] at this point - if (glob.startsWith('-]', i + 1)) { - ranges.push(braceEscape(c + '-')); + } + // now might be the start of a range. + // can be either c-d or c-] or c] or c] at this point + if (glob.startsWith("-]", i + 1)) { + ranges.push(braceEscape(c + "-")); i += 2; continue; - } - if (glob.startsWith('-', i + 1)) { + } + if (glob.startsWith("-", i + 1)) { rangeStart = c; i += 2; continue; + } + // not the start of a range, just a single character + ranges.push(braceEscape(c)); + i++; } - // not the start of a range, just a single character - ranges.push(braceEscape(c)); - i++; - } - if (endPos < i) { - // didn't see the end of the class, not a valid class, - // but might still be valid as a literal match. - return ['', false, 0, false]; - } - // if we got no ranges and no negates, then we have a range that - // cannot possibly match anything, and that poisons the whole glob - if (!ranges.length && !negs.length) { - return ['$.', false, glob.length - pos, true]; - } - // if we got one positive range, and it's a single character, then that's - // not actually a magic pattern, it's just that one literal character. - // we should not treat that as "magic", we should just return the literal - // character. [_] is a perfectly valid way to escape glob magic chars. - if (negs.length === 0 && - ranges.length === 1 && - /^\\?.$/.test(ranges[0]) && - !negate) { - const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]; - return [regexpEscape(r), false, endPos - pos, false]; - } - const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']'; - const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']'; - const comb = ranges.length && negs.length - ? '(' + sranges + '|' + snegs + ')' - : ranges.length + if (endPos < i) { + // didn't see the end of the class, not a valid class, + // but might still be valid as a literal match. + return ["", false, 0, false]; + } + // if we got no ranges and no negates, then we have a range that + // cannot possibly match anything, and that poisons the whole glob + if (!ranges.length && !negs.length) { + return ["$.", false, glob.length - pos, true]; + } + // if we got one positive range, and it's a single character, then that's + // not actually a magic pattern, it's just that one literal character. + // we should not treat that as "magic", we should just return the literal + // character. [_] is a perfectly valid way to escape glob magic chars. + if ( + negs.length === 0 && + ranges.length === 1 && + /^\\?.$/.test(ranges[0]) && + !negate + ) { + const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]; + return [regexpEscape(r), false, endPos - pos, false]; + } + const sranges = + "[" + (negate ? "^" : "") + rangesToString(ranges) + "]"; + const snegs = "[" + (negate ? "" : "^") + rangesToString(negs) + "]"; + const comb = + ranges.length && negs.length + ? "(" + sranges + "|" + snegs + ")" + : ranges.length ? sranges : snegs; - return [comb, uflag, endPos - pos, true]; -}; -exports.parseClass = parseClass; -//# sourceMappingURL=brace-expressions.js.map + return [comb, uflag, endPos - pos, true]; + }; + exports.parseClass = parseClass; + //# sourceMappingURL=brace-expressions.js.map -/***/ }), + /***/ + }, -/***/ 9004: -/***/ ((__unused_webpack_module, exports) => { + /***/ 9004: /***/ (__unused_webpack_module, exports) => { + "use strict"; -"use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.escape = void 0; + /** + * Escape all magic characters in a glob pattern. + * + * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape} + * option is used, then characters are escaped by wrapping in `[]`, because + * a magic character wrapped in a character class can only be satisfied by + * that exact character. In this mode, `\` is _not_ escaped, because it is + * not interpreted as a magic character, but instead as a path separator. + */ + const escape = (s, { windowsPathsNoEscape = false } = {}) => { + // don't need to escape +@! because we escape the parens + // that make those magic, and escaping ! as [!] isn't valid, + // because [!]] is a valid glob class meaning not ']'. + return windowsPathsNoEscape + ? s.replace(/[?*()[\]]/g, "[$&]") + : s.replace(/[?*()[\]\\]/g, "\\$&"); + }; + exports.escape = escape; + //# sourceMappingURL=escape.js.map -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.escape = void 0; -/** - * Escape all magic characters in a glob pattern. - * - * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape} - * option is used, then characters are escaped by wrapping in `[]`, because - * a magic character wrapped in a character class can only be satisfied by - * that exact character. In this mode, `\` is _not_ escaped, because it is - * not interpreted as a magic character, but instead as a path separator. - */ -const escape = (s, { windowsPathsNoEscape = false, } = {}) => { - // don't need to escape +@! because we escape the parens - // that make those magic, and escaping ! as [!] isn't valid, - // because [!]] is a valid glob class meaning not ']'. - return windowsPathsNoEscape - ? s.replace(/[?*()[\]]/g, '[$&]') - : s.replace(/[?*()[\]\\]/g, '\\$&'); -}; -exports.escape = escape; -//# sourceMappingURL=escape.js.map + /***/ + }, -/***/ }), + /***/ 2002: /***/ function ( + module, + __unused_webpack_exports, + __nccwpck_require__ + ) { + "use strict"; -/***/ 2002: -/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { + var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + const index_js_1 = __importDefault(__nccwpck_require__(1953)); + module.exports = Object.assign(index_js_1.default, { + default: index_js_1.default, + minimatch: index_js_1.default, + }); + //# sourceMappingURL=index-cjs.js.map -"use strict"; + /***/ + }, -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -const index_js_1 = __importDefault(__nccwpck_require__(1953)); -module.exports = Object.assign(index_js_1.default, { default: index_js_1.default, minimatch: index_js_1.default }); -//# sourceMappingURL=index-cjs.js.map + /***/ 1953: /***/ function ( + __unused_webpack_module, + exports, + __nccwpck_require__ + ) { + "use strict"; -/***/ }), - -/***/ 1953: -/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { - -"use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.unescape = exports.escape = exports.Minimatch = exports.match = exports.makeRe = exports.braceExpand = exports.defaults = exports.filter = exports.GLOBSTAR = exports.sep = exports.minimatch = void 0; -const brace_expansion_1 = __importDefault(__nccwpck_require__(3717)); -const brace_expressions_js_1 = __nccwpck_require__(5822); -const escape_js_1 = __nccwpck_require__(9004); -const unescape_js_1 = __nccwpck_require__(7305); -const minimatch = (p, pattern, options = {}) => { - assertValidPattern(pattern); - // shortcut: comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { - return false; - } - return new Minimatch(pattern, options).match(p); -}; -exports.minimatch = minimatch; -exports["default"] = exports.minimatch; -// Optimized checking for the most common glob patterns. -const starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/; -const starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext); -const starDotExtTestDot = (ext) => (f) => f.endsWith(ext); -const starDotExtTestNocase = (ext) => { - ext = ext.toLowerCase(); - return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext); -}; -const starDotExtTestNocaseDot = (ext) => { - ext = ext.toLowerCase(); - return (f) => f.toLowerCase().endsWith(ext); -}; -const starDotStarRE = /^\*+\.\*+$/; -const starDotStarTest = (f) => !f.startsWith('.') && f.includes('.'); -const starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.'); -const dotStarRE = /^\.\*+$/; -const dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.'); -const starRE = /^\*+$/; -const starTest = (f) => f.length !== 0 && !f.startsWith('.'); -const starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..'; -const qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/; -const qmarksTestNocase = ([$0, ext = '']) => { - const noext = qmarksTestNoExt([$0]); - if (!ext) - return noext; - ext = ext.toLowerCase(); - return (f) => noext(f) && f.toLowerCase().endsWith(ext); -}; -const qmarksTestNocaseDot = ([$0, ext = '']) => { - const noext = qmarksTestNoExtDot([$0]); - if (!ext) - return noext; - ext = ext.toLowerCase(); - return (f) => noext(f) && f.toLowerCase().endsWith(ext); -}; -const qmarksTestDot = ([$0, ext = '']) => { - const noext = qmarksTestNoExtDot([$0]); - return !ext ? noext : (f) => noext(f) && f.endsWith(ext); -}; -const qmarksTest = ([$0, ext = '']) => { - const noext = qmarksTestNoExt([$0]); - return !ext ? noext : (f) => noext(f) && f.endsWith(ext); -}; -const qmarksTestNoExt = ([$0]) => { - const len = $0.length; - return (f) => f.length === len && !f.startsWith('.'); -}; -const qmarksTestNoExtDot = ([$0]) => { - const len = $0.length; - return (f) => f.length === len && f !== '.' && f !== '..'; -}; -/* c8 ignore start */ -const defaultPlatform = (typeof process === 'object' && process - ? (typeof process.env === 'object' && - process.env && - process.env.__MINIMATCH_TESTING_PLATFORM__) || - process.platform - : 'posix'); -const path = { - win32: { sep: '\\' }, - posix: { sep: '/' }, -}; -/* c8 ignore stop */ -exports.sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep; -exports.minimatch.sep = exports.sep; -exports.GLOBSTAR = Symbol('globstar **'); -exports.minimatch.GLOBSTAR = exports.GLOBSTAR; -const plTypes = { - '!': { open: '(?:(?!(?:', close: '))[^/]*?)' }, - '?': { open: '(?:', close: ')?' }, - '+': { open: '(?:', close: ')+' }, - '*': { open: '(?:', close: ')*' }, - '@': { open: '(?:', close: ')' }, -}; -// any single thing other than / -// don't need to escape / when using new RegExp() -const qmark = '[^/]'; -// * => any number of characters -const star = qmark + '*?'; -// ** when dots are allowed. Anything goes, except .. and . -// not (^ or / followed by one or two dots followed by $ or /), -// followed by anything, any number of times. -const twoStarDot = '(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?'; -// not a ^ or / followed by a dot, -// followed by anything, any number of times. -const twoStarNoDot = '(?:(?!(?:\\/|^)\\.).)*?'; -// "abc" -> { a:true, b:true, c:true } -const charSet = (s) => s.split('').reduce((set, c) => { - set[c] = true; - return set; -}, {}); -// characters that need to be escaped in RegExp. -const reSpecials = charSet('().*{}+?[]^$\\!'); -// characters that indicate we have to add the pattern start -const addPatternStartSet = charSet('[.('); -const filter = (pattern, options = {}) => (p) => (0, exports.minimatch)(p, pattern, options); -exports.filter = filter; -exports.minimatch.filter = exports.filter; -const ext = (a, b = {}) => Object.assign({}, a, b); -const defaults = (def) => { - if (!def || typeof def !== 'object' || !Object.keys(def).length) { - return exports.minimatch; - } - const orig = exports.minimatch; - const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options)); - return Object.assign(m, { - Minimatch: class Minimatch extends orig.Minimatch { + var __importDefault = + (this && this.__importDefault) || + function (mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.unescape = + exports.escape = + exports.Minimatch = + exports.match = + exports.makeRe = + exports.braceExpand = + exports.defaults = + exports.filter = + exports.GLOBSTAR = + exports.sep = + exports.minimatch = + void 0; + const brace_expansion_1 = __importDefault(__nccwpck_require__(3717)); + const brace_expressions_js_1 = __nccwpck_require__(5822); + const escape_js_1 = __nccwpck_require__(9004); + const unescape_js_1 = __nccwpck_require__(7305); + const minimatch = (p, pattern, options = {}) => { + assertValidPattern(pattern); + // shortcut: comments match nothing. + if (!options.nocomment && pattern.charAt(0) === "#") { + return false; + } + return new Minimatch(pattern, options).match(p); + }; + exports.minimatch = minimatch; + exports["default"] = exports.minimatch; + // Optimized checking for the most common glob patterns. + const starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/; + const starDotExtTest = (ext) => (f) => + !f.startsWith(".") && f.endsWith(ext); + const starDotExtTestDot = (ext) => (f) => f.endsWith(ext); + const starDotExtTestNocase = (ext) => { + ext = ext.toLowerCase(); + return (f) => !f.startsWith(".") && f.toLowerCase().endsWith(ext); + }; + const starDotExtTestNocaseDot = (ext) => { + ext = ext.toLowerCase(); + return (f) => f.toLowerCase().endsWith(ext); + }; + const starDotStarRE = /^\*+\.\*+$/; + const starDotStarTest = (f) => !f.startsWith(".") && f.includes("."); + const starDotStarTestDot = (f) => + f !== "." && f !== ".." && f.includes("."); + const dotStarRE = /^\.\*+$/; + const dotStarTest = (f) => f !== "." && f !== ".." && f.startsWith("."); + const starRE = /^\*+$/; + const starTest = (f) => f.length !== 0 && !f.startsWith("."); + const starTestDot = (f) => f.length !== 0 && f !== "." && f !== ".."; + const qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/; + const qmarksTestNocase = ([$0, ext = ""]) => { + const noext = qmarksTestNoExt([$0]); + if (!ext) return noext; + ext = ext.toLowerCase(); + return (f) => noext(f) && f.toLowerCase().endsWith(ext); + }; + const qmarksTestNocaseDot = ([$0, ext = ""]) => { + const noext = qmarksTestNoExtDot([$0]); + if (!ext) return noext; + ext = ext.toLowerCase(); + return (f) => noext(f) && f.toLowerCase().endsWith(ext); + }; + const qmarksTestDot = ([$0, ext = ""]) => { + const noext = qmarksTestNoExtDot([$0]); + return !ext ? noext : (f) => noext(f) && f.endsWith(ext); + }; + const qmarksTest = ([$0, ext = ""]) => { + const noext = qmarksTestNoExt([$0]); + return !ext ? noext : (f) => noext(f) && f.endsWith(ext); + }; + const qmarksTestNoExt = ([$0]) => { + const len = $0.length; + return (f) => f.length === len && !f.startsWith("."); + }; + const qmarksTestNoExtDot = ([$0]) => { + const len = $0.length; + return (f) => f.length === len && f !== "." && f !== ".."; + }; + /* c8 ignore start */ + const defaultPlatform = + typeof process === "object" && process + ? (typeof process.env === "object" && + process.env && + process.env.__MINIMATCH_TESTING_PLATFORM__) || + process.platform + : "posix"; + const path = { + win32: { sep: "\\" }, + posix: { sep: "/" }, + }; + /* c8 ignore stop */ + exports.sep = + defaultPlatform === "win32" ? path.win32.sep : path.posix.sep; + exports.minimatch.sep = exports.sep; + exports.GLOBSTAR = Symbol("globstar **"); + exports.minimatch.GLOBSTAR = exports.GLOBSTAR; + const plTypes = { + "!": { open: "(?:(?!(?:", close: "))[^/]*?)" }, + "?": { open: "(?:", close: ")?" }, + "+": { open: "(?:", close: ")+" }, + "*": { open: "(?:", close: ")*" }, + "@": { open: "(?:", close: ")" }, + }; + // any single thing other than / + // don't need to escape / when using new RegExp() + const qmark = "[^/]"; + // * => any number of characters + const star = qmark + "*?"; + // ** when dots are allowed. Anything goes, except .. and . + // not (^ or / followed by one or two dots followed by $ or /), + // followed by anything, any number of times. + const twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?"; + // not a ^ or / followed by a dot, + // followed by anything, any number of times. + const twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?"; + // "abc" -> { a:true, b:true, c:true } + const charSet = (s) => + s.split("").reduce((set, c) => { + set[c] = true; + return set; + }, {}); + // characters that need to be escaped in RegExp. + const reSpecials = charSet("().*{}+?[]^$\\!"); + // characters that indicate we have to add the pattern start + const addPatternStartSet = charSet("[.("); + const filter = + (pattern, options = {}) => + (p) => + (0, exports.minimatch)(p, pattern, options); + exports.filter = filter; + exports.minimatch.filter = exports.filter; + const ext = (a, b = {}) => Object.assign({}, a, b); + const defaults = (def) => { + if (!def || typeof def !== "object" || !Object.keys(def).length) { + return exports.minimatch; + } + const orig = exports.minimatch; + const m = (p, pattern, options = {}) => + orig(p, pattern, ext(def, options)); + return Object.assign(m, { + Minimatch: class Minimatch extends orig.Minimatch { constructor(pattern, options = {}) { - super(pattern, ext(def, options)); + super(pattern, ext(def, options)); } static defaults(options) { - return orig.defaults(ext(def, options)).Minimatch; + return orig.defaults(ext(def, options)).Minimatch; } - }, - unescape: (s, options = {}) => orig.unescape(s, ext(def, options)), - escape: (s, options = {}) => orig.escape(s, ext(def, options)), - filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)), - defaults: (options) => orig.defaults(ext(def, options)), - makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)), - braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)), - match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)), - sep: orig.sep, - GLOBSTAR: exports.GLOBSTAR, - }); -}; -exports.defaults = defaults; -exports.minimatch.defaults = exports.defaults; -// Brace expansion: -// a{b,c}d -> abd acd -// a{b,}c -> abc ac -// a{0..3}d -> a0d a1d a2d a3d -// a{b,c{d,e}f}g -> abg acdfg acefg -// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg -// -// Invalid sets are not expanded. -// a{2..}b -> a{2..}b -// a{b}c -> a{b}c -const braceExpand = (pattern, options = {}) => { - assertValidPattern(pattern); - // Thanks to Yeting Li for - // improving this regexp to avoid a ReDOS vulnerability. - if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { - // shortcut. no need to expand. - return [pattern]; - } - return (0, brace_expansion_1.default)(pattern); -}; -exports.braceExpand = braceExpand; -exports.minimatch.braceExpand = exports.braceExpand; -const MAX_PATTERN_LENGTH = 1024 * 64; -const assertValidPattern = (pattern) => { - if (typeof pattern !== 'string') { - throw new TypeError('invalid pattern'); - } - if (pattern.length > MAX_PATTERN_LENGTH) { - throw new TypeError('pattern is too long'); - } -}; -// parse a component of the expanded set. -// At this point, no pattern may contain "/" in it -// so we're going to return a 2d array, where each entry is the full -// pattern, split on '/', and then turned into a regular expression. -// A regexp is made at the end which joins each array with an -// escaped /, and another full one which joins each regexp with |. -// -// Following the lead of Bash 4.1, note that "**" only has special meaning -// when it is the *only* thing in a path portion. Otherwise, any series -// of * is equivalent to a single *. Globstar behavior is enabled by -// default, and can be disabled by setting options.noglobstar. -const makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe(); -exports.makeRe = makeRe; -exports.minimatch.makeRe = exports.makeRe; -const match = (list, pattern, options = {}) => { - const mm = new Minimatch(pattern, options); - list = list.filter(f => mm.match(f)); - if (mm.options.nonull && !list.length) { - list.push(pattern); - } - return list; -}; -exports.match = match; -exports.minimatch.match = exports.match; -// replace stuff like \* with * -const globUnescape = (s) => s.replace(/\\(.)/g, '$1'); -const globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/; -const regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); -class Minimatch { - options; - set; - pattern; - windowsPathsNoEscape; - nonegate; - negate; - comment; - empty; - preserveMultipleSlashes; - partial; - globSet; - globParts; - nocase; - isWindows; - platform; - windowsNoMagicRoot; - regexp; - constructor(pattern, options = {}) { + }, + unescape: (s, options = {}) => orig.unescape(s, ext(def, options)), + escape: (s, options = {}) => orig.escape(s, ext(def, options)), + filter: (pattern, options = {}) => + orig.filter(pattern, ext(def, options)), + defaults: (options) => orig.defaults(ext(def, options)), + makeRe: (pattern, options = {}) => + orig.makeRe(pattern, ext(def, options)), + braceExpand: (pattern, options = {}) => + orig.braceExpand(pattern, ext(def, options)), + match: (list, pattern, options = {}) => + orig.match(list, pattern, ext(def, options)), + sep: orig.sep, + GLOBSTAR: exports.GLOBSTAR, + }); + }; + exports.defaults = defaults; + exports.minimatch.defaults = exports.defaults; + // Brace expansion: + // a{b,c}d -> abd acd + // a{b,}c -> abc ac + // a{0..3}d -> a0d a1d a2d a3d + // a{b,c{d,e}f}g -> abg acdfg acefg + // a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg + // + // Invalid sets are not expanded. + // a{2..}b -> a{2..}b + // a{b}c -> a{b}c + const braceExpand = (pattern, options = {}) => { assertValidPattern(pattern); - options = options || {}; - this.options = options; - this.pattern = pattern; - this.platform = options.platform || defaultPlatform; - this.isWindows = this.platform === 'win32'; - this.windowsPathsNoEscape = - !!options.windowsPathsNoEscape || options.allowWindowsEscape === false; - if (this.windowsPathsNoEscape) { - this.pattern = this.pattern.replace(/\\/g, '/'); + // Thanks to Yeting Li for + // improving this regexp to avoid a ReDOS vulnerability. + if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { + // shortcut. no need to expand. + return [pattern]; } - this.preserveMultipleSlashes = !!options.preserveMultipleSlashes; - this.regexp = null; - this.negate = false; - this.nonegate = !!options.nonegate; - this.comment = false; - this.empty = false; - this.partial = !!options.partial; - this.nocase = !!this.options.nocase; - this.windowsNoMagicRoot = + return (0, brace_expansion_1.default)(pattern); + }; + exports.braceExpand = braceExpand; + exports.minimatch.braceExpand = exports.braceExpand; + const MAX_PATTERN_LENGTH = 1024 * 64; + const assertValidPattern = (pattern) => { + if (typeof pattern !== "string") { + throw new TypeError("invalid pattern"); + } + if (pattern.length > MAX_PATTERN_LENGTH) { + throw new TypeError("pattern is too long"); + } + }; + // parse a component of the expanded set. + // At this point, no pattern may contain "/" in it + // so we're going to return a 2d array, where each entry is the full + // pattern, split on '/', and then turned into a regular expression. + // A regexp is made at the end which joins each array with an + // escaped /, and another full one which joins each regexp with |. + // + // Following the lead of Bash 4.1, note that "**" only has special meaning + // when it is the *only* thing in a path portion. Otherwise, any series + // of * is equivalent to a single *. Globstar behavior is enabled by + // default, and can be disabled by setting options.noglobstar. + const makeRe = (pattern, options = {}) => + new Minimatch(pattern, options).makeRe(); + exports.makeRe = makeRe; + exports.minimatch.makeRe = exports.makeRe; + const match = (list, pattern, options = {}) => { + const mm = new Minimatch(pattern, options); + list = list.filter((f) => mm.match(f)); + if (mm.options.nonull && !list.length) { + list.push(pattern); + } + return list; + }; + exports.match = match; + exports.minimatch.match = exports.match; + // replace stuff like \* with * + const globUnescape = (s) => s.replace(/\\(.)/g, "$1"); + const globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/; + const regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + class Minimatch { + options; + set; + pattern; + windowsPathsNoEscape; + nonegate; + negate; + comment; + empty; + preserveMultipleSlashes; + partial; + globSet; + globParts; + nocase; + isWindows; + platform; + windowsNoMagicRoot; + regexp; + constructor(pattern, options = {}) { + assertValidPattern(pattern); + options = options || {}; + this.options = options; + this.pattern = pattern; + this.platform = options.platform || defaultPlatform; + this.isWindows = this.platform === "win32"; + this.windowsPathsNoEscape = + !!options.windowsPathsNoEscape || + options.allowWindowsEscape === false; + if (this.windowsPathsNoEscape) { + this.pattern = this.pattern.replace(/\\/g, "/"); + } + this.preserveMultipleSlashes = !!options.preserveMultipleSlashes; + this.regexp = null; + this.negate = false; + this.nonegate = !!options.nonegate; + this.comment = false; + this.empty = false; + this.partial = !!options.partial; + this.nocase = !!this.options.nocase; + this.windowsNoMagicRoot = options.windowsNoMagicRoot !== undefined - ? options.windowsNoMagicRoot - : !!(this.isWindows && this.nocase); - this.globSet = []; - this.globParts = []; - this.set = []; - // make the set of regexps etc. - this.make(); - } - hasMagic() { - if (this.options.magicalBraces && this.set.length > 1) { + ? options.windowsNoMagicRoot + : !!(this.isWindows && this.nocase); + this.globSet = []; + this.globParts = []; + this.set = []; + // make the set of regexps etc. + this.make(); + } + hasMagic() { + if (this.options.magicalBraces && this.set.length > 1) { return true; - } - for (const pattern of this.set) { + } + for (const pattern of this.set) { for (const part of pattern) { - if (typeof part !== 'string') - return true; + if (typeof part !== "string") return true; } + } + return false; } - return false; - } - debug(..._) { } - make() { - const pattern = this.pattern; - const options = this.options; - // empty patterns and comments match nothing. - if (!options.nocomment && pattern.charAt(0) === '#') { + debug(..._) {} + make() { + const pattern = this.pattern; + const options = this.options; + // empty patterns and comments match nothing. + if (!options.nocomment && pattern.charAt(0) === "#") { this.comment = true; return; - } - if (!pattern) { + } + if (!pattern) { this.empty = true; return; - } - // step 1: figure out negation, etc. - this.parseNegate(); - // step 2: expand braces - this.globSet = [...new Set(this.braceExpand())]; - if (options.debug) { + } + // step 1: figure out negation, etc. + this.parseNegate(); + // step 2: expand braces + this.globSet = [...new Set(this.braceExpand())]; + if (options.debug) { this.debug = (...args) => console.error(...args); - } - this.debug(this.pattern, this.globSet); - // step 3: now we have a set, so turn each one into a series of - // path-portion matching patterns. - // These will be regexps, except in the case of "**", which is - // set to the GLOBSTAR object for globstar behavior, - // and will not contain any / characters - // - // First, we preprocess to make the glob pattern sets a bit simpler - // and deduped. There are some perf-killing patterns that can cause - // problems with a glob walk, but we can simplify them down a bit. - const rawGlobParts = this.globSet.map(s => this.slashSplit(s)); - this.globParts = this.preprocess(rawGlobParts); - this.debug(this.pattern, this.globParts); - // glob --> regexps - let set = this.globParts.map((s, _, __) => { + } + this.debug(this.pattern, this.globSet); + // step 3: now we have a set, so turn each one into a series of + // path-portion matching patterns. + // These will be regexps, except in the case of "**", which is + // set to the GLOBSTAR object for globstar behavior, + // and will not contain any / characters + // + // First, we preprocess to make the glob pattern sets a bit simpler + // and deduped. There are some perf-killing patterns that can cause + // problems with a glob walk, but we can simplify them down a bit. + const rawGlobParts = this.globSet.map((s) => this.slashSplit(s)); + this.globParts = this.preprocess(rawGlobParts); + this.debug(this.pattern, this.globParts); + // glob --> regexps + let set = this.globParts.map((s, _, __) => { if (this.isWindows && this.windowsNoMagicRoot) { - // check if it's a drive or unc path. - const isUNC = s[0] === '' && - s[1] === '' && - (s[2] === '?' || !globMagic.test(s[2])) && - !globMagic.test(s[3]); - const isDrive = /^[a-z]:/i.test(s[0]); - if (isUNC) { - return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))]; - } - else if (isDrive) { - return [s[0], ...s.slice(1).map(ss => this.parse(ss))]; - } + // check if it's a drive or unc path. + const isUNC = + s[0] === "" && + s[1] === "" && + (s[2] === "?" || !globMagic.test(s[2])) && + !globMagic.test(s[3]); + const isDrive = /^[a-z]:/i.test(s[0]); + if (isUNC) { + return [ + ...s.slice(0, 4), + ...s.slice(4).map((ss) => this.parse(ss)), + ]; + } else if (isDrive) { + return [s[0], ...s.slice(1).map((ss) => this.parse(ss))]; + } } - return s.map(ss => this.parse(ss)); - }); - this.debug(this.pattern, set); - // filter out everything that didn't compile properly. - this.set = set.filter(s => s.indexOf(false) === -1); - // do not treat the ? in UNC paths as magic - if (this.isWindows) { + return s.map((ss) => this.parse(ss)); + }); + this.debug(this.pattern, set); + // filter out everything that didn't compile properly. + this.set = set.filter((s) => s.indexOf(false) === -1); + // do not treat the ? in UNC paths as magic + if (this.isWindows) { for (let i = 0; i < this.set.length; i++) { - const p = this.set[i]; - if (p[0] === '' && - p[1] === '' && - this.globParts[i][2] === '?' && - typeof p[3] === 'string' && - /^[a-z]:$/i.test(p[3])) { - p[2] = '?'; - } + const p = this.set[i]; + if ( + p[0] === "" && + p[1] === "" && + this.globParts[i][2] === "?" && + typeof p[3] === "string" && + /^[a-z]:$/i.test(p[3]) + ) { + p[2] = "?"; + } } + } + this.debug(this.pattern, this.set); } - this.debug(this.pattern, this.set); - } - // various transforms to equivalent pattern sets that are - // faster to process in a filesystem walk. The goal is to - // eliminate what we can, and push all ** patterns as far - // to the right as possible, even if it increases the number - // of patterns that we have to process. - preprocess(globParts) { - // if we're not in globstar mode, then turn all ** into * - if (this.options.noglobstar) { + // various transforms to equivalent pattern sets that are + // faster to process in a filesystem walk. The goal is to + // eliminate what we can, and push all ** patterns as far + // to the right as possible, even if it increases the number + // of patterns that we have to process. + preprocess(globParts) { + // if we're not in globstar mode, then turn all ** into * + if (this.options.noglobstar) { for (let i = 0; i < globParts.length; i++) { - for (let j = 0; j < globParts[i].length; j++) { - if (globParts[i][j] === '**') { - globParts[i][j] = '*'; - } + for (let j = 0; j < globParts[i].length; j++) { + if (globParts[i][j] === "**") { + globParts[i][j] = "*"; } + } } - } - const { optimizationLevel = 1 } = this.options; - if (optimizationLevel >= 2) { + } + const { optimizationLevel = 1 } = this.options; + if (optimizationLevel >= 2) { // aggressive optimization for the purpose of fs walking globParts = this.firstPhasePreProcess(globParts); globParts = this.secondPhasePreProcess(globParts); - } - else if (optimizationLevel >= 1) { + } else if (optimizationLevel >= 1) { // just basic optimizations to remove some .. parts globParts = this.levelOneOptimize(globParts); - } - else { + } else { globParts = this.adjascentGlobstarOptimize(globParts); + } + return globParts; } - return globParts; - } - // just get rid of adjascent ** portions - adjascentGlobstarOptimize(globParts) { - return globParts.map(parts => { + // just get rid of adjascent ** portions + adjascentGlobstarOptimize(globParts) { + return globParts.map((parts) => { let gs = -1; - while (-1 !== (gs = parts.indexOf('**', gs + 1))) { - let i = gs; - while (parts[i + 1] === '**') { - i++; - } - if (i !== gs) { - parts.splice(gs, i - gs); - } + while (-1 !== (gs = parts.indexOf("**", gs + 1))) { + let i = gs; + while (parts[i + 1] === "**") { + i++; + } + if (i !== gs) { + parts.splice(gs, i - gs); + } } return parts; - }); - } - // get rid of adjascent ** and resolve .. portions - levelOneOptimize(globParts) { - return globParts.map(parts => { - parts = parts.reduce((set, part) => { - const prev = set[set.length - 1]; - if (part === '**' && prev === '**') { - return set; - } - if (part === '..') { - if (prev && prev !== '..' && prev !== '.' && prev !== '**') { - set.pop(); - return set; - } - } - set.push(part); - return set; - }, []); - return parts.length === 0 ? [''] : parts; - }); - } - levelTwoFileOptimize(parts) { - if (!Array.isArray(parts)) { - parts = this.slashSplit(parts); + }); } - let didSomething = false; - do { + // get rid of adjascent ** and resolve .. portions + levelOneOptimize(globParts) { + return globParts.map((parts) => { + parts = parts.reduce((set, part) => { + const prev = set[set.length - 1]; + if (part === "**" && prev === "**") { + return set; + } + if (part === "..") { + if (prev && prev !== ".." && prev !== "." && prev !== "**") { + set.pop(); + return set; + } + } + set.push(part); + return set; + }, []); + return parts.length === 0 ? [""] : parts; + }); + } + levelTwoFileOptimize(parts) { + if (!Array.isArray(parts)) { + parts = this.slashSplit(parts); + } + let didSomething = false; + do { didSomething = false; //
// -> 
/
             if (!this.preserveMultipleSlashes) {
-                for (let i = 1; i < parts.length - 1; i++) {
-                    const p = parts[i];
-                    // don't squeeze out UNC patterns
-                    if (i === 1 && p === '' && parts[0] === '')
-                        continue;
-                    if (p === '.' || p === '') {
-                        didSomething = true;
-                        parts.splice(i, 1);
-                        i--;
-                    }
-                }
-                if (parts[0] === '.' &&
-                    parts.length === 2 &&
-                    (parts[1] === '.' || parts[1] === '')) {
-                    didSomething = true;
-                    parts.pop();
+              for (let i = 1; i < parts.length - 1; i++) {
+                const p = parts[i];
+                // don't squeeze out UNC patterns
+                if (i === 1 && p === "" && parts[0] === "") continue;
+                if (p === "." || p === "") {
+                  didSomething = true;
+                  parts.splice(i, 1);
+                  i--;
                 }
+              }
+              if (
+                parts[0] === "." &&
+                parts.length === 2 &&
+                (parts[1] === "." || parts[1] === "")
+              ) {
+                didSomething = true;
+                parts.pop();
+              }
             }
             // 
/

/../ ->

/
             let dd = 0;
-            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {
-                const p = parts[dd - 1];
-                if (p && p !== '.' && p !== '..' && p !== '**') {
-                    didSomething = true;
-                    parts.splice(dd - 1, 2);
-                    dd -= 2;
-                }
+            while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
+              const p = parts[dd - 1];
+              if (p && p !== "." && p !== ".." && p !== "**") {
+                didSomething = true;
+                parts.splice(dd - 1, 2);
+                dd -= 2;
+              }
             }
-        } while (didSomething);
-        return parts.length === 0 ? [''] : parts;
-    }
-    // First phase: single-pattern processing
-    // 
 is 1 or more portions
-    //  is 1 or more portions
-    // 

is any portion other than ., .., '', or ** - // is . or '' - // - // **/.. is *brutal* for filesystem walking performance, because - // it effectively resets the recursive walk each time it occurs, - // and ** cannot be reduced out by a .. pattern part like a regexp - // or most strings (other than .., ., and '') can be. - // - //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/} - //

// -> 
/
-    // 
/

/../ ->

/
-    // **/**/ -> **/
-    //
-    // **/*/ -> */**/ <== not valid because ** doesn't follow
-    // this WOULD be allowed if ** did follow symlinks, or * didn't
-    firstPhasePreProcess(globParts) {
-        let didSomething = false;
-        do {
+          } while (didSomething);
+          return parts.length === 0 ? [""] : parts;
+        }
+        // First phase: single-pattern processing
+        // 
 is 1 or more portions
+        //  is 1 or more portions
+        // 

is any portion other than ., .., '', or ** + // is . or '' + // + // **/.. is *brutal* for filesystem walking performance, because + // it effectively resets the recursive walk each time it occurs, + // and ** cannot be reduced out by a .. pattern part like a regexp + // or most strings (other than .., ., and '') can be. + // + //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/} + //

// -> 
/
+        // 
/

/../ ->

/
+        // **/**/ -> **/
+        //
+        // **/*/ -> */**/ <== not valid because ** doesn't follow
+        // this WOULD be allowed if ** did follow symlinks, or * didn't
+        firstPhasePreProcess(globParts) {
+          let didSomething = false;
+          do {
             didSomething = false;
             // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/} for (let parts of globParts) { - let gs = -1; - while (-1 !== (gs = parts.indexOf('**', gs + 1))) { - let gss = gs; - while (parts[gss + 1] === '**') { - //

/**/**/ -> 
/**/
-                        gss++;
-                    }
-                    // eg, if gs is 2 and gss is 4, that means we have 3 **
-                    // parts, and can remove 2 of them.
-                    if (gss > gs) {
-                        parts.splice(gs + 1, gss - gs);
-                    }
-                    let next = parts[gs + 1];
-                    const p = parts[gs + 2];
-                    const p2 = parts[gs + 3];
-                    if (next !== '..')
-                        continue;
-                    if (!p ||
-                        p === '.' ||
-                        p === '..' ||
-                        !p2 ||
-                        p2 === '.' ||
-                        p2 === '..') {
-                        continue;
-                    }
+              let gs = -1;
+              while (-1 !== (gs = parts.indexOf("**", gs + 1))) {
+                let gss = gs;
+                while (parts[gss + 1] === "**") {
+                  // 
/**/**/ -> 
/**/
+                  gss++;
+                }
+                // eg, if gs is 2 and gss is 4, that means we have 3 **
+                // parts, and can remove 2 of them.
+                if (gss > gs) {
+                  parts.splice(gs + 1, gss - gs);
+                }
+                let next = parts[gs + 1];
+                const p = parts[gs + 2];
+                const p2 = parts[gs + 3];
+                if (next !== "..") continue;
+                if (
+                  !p ||
+                  p === "." ||
+                  p === ".." ||
+                  !p2 ||
+                  p2 === "." ||
+                  p2 === ".."
+                ) {
+                  continue;
+                }
+                didSomething = true;
+                // edit parts in place, and push the new one
+                parts.splice(gs, 1);
+                const other = parts.slice(0);
+                other[gs] = "**";
+                globParts.push(other);
+                gs--;
+              }
+              // 
// -> 
/
+              if (!this.preserveMultipleSlashes) {
+                for (let i = 1; i < parts.length - 1; i++) {
+                  const p = parts[i];
+                  // don't squeeze out UNC patterns
+                  if (i === 1 && p === "" && parts[0] === "") continue;
+                  if (p === "." || p === "") {
                     didSomething = true;
-                    // edit parts in place, and push the new one
-                    parts.splice(gs, 1);
-                    const other = parts.slice(0);
-                    other[gs] = '**';
-                    globParts.push(other);
-                    gs--;
+                    parts.splice(i, 1);
+                    i--;
+                  }
                 }
-                // 
// -> 
/
-                if (!this.preserveMultipleSlashes) {
-                    for (let i = 1; i < parts.length - 1; i++) {
-                        const p = parts[i];
-                        // don't squeeze out UNC patterns
-                        if (i === 1 && p === '' && parts[0] === '')
-                            continue;
-                        if (p === '.' || p === '') {
-                            didSomething = true;
-                            parts.splice(i, 1);
-                            i--;
-                        }
-                    }
-                    if (parts[0] === '.' &&
-                        parts.length === 2 &&
-                        (parts[1] === '.' || parts[1] === '')) {
-                        didSomething = true;
-                        parts.pop();
-                    }
+                if (
+                  parts[0] === "." &&
+                  parts.length === 2 &&
+                  (parts[1] === "." || parts[1] === "")
+                ) {
+                  didSomething = true;
+                  parts.pop();
                 }
-                // 
/

/../ ->

/
-                let dd = 0;
-                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {
-                    const p = parts[dd - 1];
-                    if (p && p !== '.' && p !== '..' && p !== '**') {
-                        didSomething = true;
-                        const needDot = dd === 1 && parts[dd + 1] === '**';
-                        const splin = needDot ? ['.'] : [];
-                        parts.splice(dd - 1, 2, ...splin);
-                        if (parts.length === 0)
-                            parts.push('');
-                        dd -= 2;
-                    }
+              }
+              // 
/

/../ ->

/
+              let dd = 0;
+              while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
+                const p = parts[dd - 1];
+                if (p && p !== "." && p !== ".." && p !== "**") {
+                  didSomething = true;
+                  const needDot = dd === 1 && parts[dd + 1] === "**";
+                  const splin = needDot ? ["."] : [];
+                  parts.splice(dd - 1, 2, ...splin);
+                  if (parts.length === 0) parts.push("");
+                  dd -= 2;
                 }
+              }
             }
-        } while (didSomething);
-        return globParts;
-    }
-    // second phase: multi-pattern dedupes
-    // {
/*/,
/

/} ->

/*/
-    // {
/,
/} -> 
/
-    // {
/**/,
/} -> 
/**/
-    //
-    // {
/**/,
/**/

/} ->

/**/
-    // ^-- not valid because ** doens't follow symlinks
-    secondPhasePreProcess(globParts) {
-        for (let i = 0; i < globParts.length - 1; i++) {
+          } while (didSomething);
+          return globParts;
+        }
+        // second phase: multi-pattern dedupes
+        // {
/*/,
/

/} ->

/*/
+        // {
/,
/} -> 
/
+        // {
/**/,
/} -> 
/**/
+        //
+        // {
/**/,
/**/

/} ->

/**/
+        // ^-- not valid because ** doens't follow symlinks
+        secondPhasePreProcess(globParts) {
+          for (let i = 0; i < globParts.length - 1; i++) {
             for (let j = i + 1; j < globParts.length; j++) {
-                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
-                if (!matched)
-                    continue;
-                globParts[i] = matched;
-                globParts[j] = [];
+              const matched = this.partsMatch(
+                globParts[i],
+                globParts[j],
+                !this.preserveMultipleSlashes
+              );
+              if (!matched) continue;
+              globParts[i] = matched;
+              globParts[j] = [];
             }
+          }
+          return globParts.filter((gs) => gs.length);
         }
-        return globParts.filter(gs => gs.length);
-    }
-    partsMatch(a, b, emptyGSMatch = false) {
-        let ai = 0;
-        let bi = 0;
-        let result = [];
-        let which = '';
-        while (ai < a.length && bi < b.length) {
+        partsMatch(a, b, emptyGSMatch = false) {
+          let ai = 0;
+          let bi = 0;
+          let result = [];
+          let which = "";
+          while (ai < a.length && bi < b.length) {
             if (a[ai] === b[bi]) {
-                result.push(which === 'b' ? b[bi] : a[ai]);
-                ai++;
-                bi++;
-            }
-            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {
-                result.push(a[ai]);
-                ai++;
-            }
-            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {
-                result.push(b[bi]);
-                bi++;
-            }
-            else if (a[ai] === '*' &&
-                b[bi] &&
-                (this.options.dot || !b[bi].startsWith('.')) &&
-                b[bi] !== '**') {
-                if (which === 'b')
-                    return false;
-                which = 'a';
-                result.push(a[ai]);
-                ai++;
-                bi++;
-            }
-            else if (b[bi] === '*' &&
-                a[ai] &&
-                (this.options.dot || !a[ai].startsWith('.')) &&
-                a[ai] !== '**') {
-                if (which === 'a')
-                    return false;
-                which = 'b';
-                result.push(b[bi]);
-                ai++;
-                bi++;
-            }
-            else {
-                return false;
+              result.push(which === "b" ? b[bi] : a[ai]);
+              ai++;
+              bi++;
+            } else if (emptyGSMatch && a[ai] === "**" && b[bi] === a[ai + 1]) {
+              result.push(a[ai]);
+              ai++;
+            } else if (emptyGSMatch && b[bi] === "**" && a[ai] === b[bi + 1]) {
+              result.push(b[bi]);
+              bi++;
+            } else if (
+              a[ai] === "*" &&
+              b[bi] &&
+              (this.options.dot || !b[bi].startsWith(".")) &&
+              b[bi] !== "**"
+            ) {
+              if (which === "b") return false;
+              which = "a";
+              result.push(a[ai]);
+              ai++;
+              bi++;
+            } else if (
+              b[bi] === "*" &&
+              a[ai] &&
+              (this.options.dot || !a[ai].startsWith(".")) &&
+              a[ai] !== "**"
+            ) {
+              if (which === "a") return false;
+              which = "b";
+              result.push(b[bi]);
+              ai++;
+              bi++;
+            } else {
+              return false;
             }
+          }
+          // if we fall out of the loop, it means they two are identical
+          // as long as their lengths match
+          return a.length === b.length && result;
         }
-        // if we fall out of the loop, it means they two are identical
-        // as long as their lengths match
-        return a.length === b.length && result;
-    }
-    parseNegate() {
-        if (this.nonegate)
-            return;
-        const pattern = this.pattern;
-        let negate = false;
-        let negateOffset = 0;
-        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {
+        parseNegate() {
+          if (this.nonegate) return;
+          const pattern = this.pattern;
+          let negate = false;
+          let negateOffset = 0;
+          for (
+            let i = 0;
+            i < pattern.length && pattern.charAt(i) === "!";
+            i++
+          ) {
             negate = !negate;
             negateOffset++;
+          }
+          if (negateOffset) this.pattern = pattern.slice(negateOffset);
+          this.negate = negate;
         }
-        if (negateOffset)
-            this.pattern = pattern.slice(negateOffset);
-        this.negate = negate;
-    }
-    // set partial to true to test if, for example,
-    // "/a/b" matches the start of "/*/b/*/d"
-    // Partial means, if you run out of file before you run
-    // out of pattern, then that's fine, as long as all
-    // the parts match.
-    matchOne(file, pattern, partial = false) {
-        const options = this.options;
-        // a UNC pattern like //?/c:/* can match a path like c:/x
-        // and vice versa
-        if (this.isWindows) {
-            const fileUNC = file[0] === '' &&
-                file[1] === '' &&
-                file[2] === '?' &&
-                typeof file[3] === 'string' &&
-                /^[a-z]:$/i.test(file[3]);
-            const patternUNC = pattern[0] === '' &&
-                pattern[1] === '' &&
-                pattern[2] === '?' &&
-                typeof pattern[3] === 'string' &&
-                /^[a-z]:$/i.test(pattern[3]);
+        // set partial to true to test if, for example,
+        // "/a/b" matches the start of "/*/b/*/d"
+        // Partial means, if you run out of file before you run
+        // out of pattern, then that's fine, as long as all
+        // the parts match.
+        matchOne(file, pattern, partial = false) {
+          const options = this.options;
+          // a UNC pattern like //?/c:/* can match a path like c:/x
+          // and vice versa
+          if (this.isWindows) {
+            const fileUNC =
+              file[0] === "" &&
+              file[1] === "" &&
+              file[2] === "?" &&
+              typeof file[3] === "string" &&
+              /^[a-z]:$/i.test(file[3]);
+            const patternUNC =
+              pattern[0] === "" &&
+              pattern[1] === "" &&
+              pattern[2] === "?" &&
+              typeof pattern[3] === "string" &&
+              /^[a-z]:$/i.test(pattern[3]);
             if (fileUNC && patternUNC) {
-                const fd = file[3];
-                const pd = pattern[3];
-                if (fd.toLowerCase() === pd.toLowerCase()) {
-                    file[3] = pd;
-                }
+              const fd = file[3];
+              const pd = pattern[3];
+              if (fd.toLowerCase() === pd.toLowerCase()) {
+                file[3] = pd;
+              }
+            } else if (patternUNC && typeof file[0] === "string") {
+              const pd = pattern[3];
+              const fd = file[0];
+              if (pd.toLowerCase() === fd.toLowerCase()) {
+                pattern[3] = fd;
+                pattern = pattern.slice(3);
+              }
+            } else if (fileUNC && typeof pattern[0] === "string") {
+              const fd = file[3];
+              if (fd.toLowerCase() === pattern[0].toLowerCase()) {
+                pattern[0] = fd;
+                file = file.slice(3);
+              }
             }
-            else if (patternUNC && typeof file[0] === 'string') {
-                const pd = pattern[3];
-                const fd = file[0];
-                if (pd.toLowerCase() === fd.toLowerCase()) {
-                    pattern[3] = fd;
-                    pattern = pattern.slice(3);
-                }
-            }
-            else if (fileUNC && typeof pattern[0] === 'string') {
-                const fd = file[3];
-                if (fd.toLowerCase() === pattern[0].toLowerCase()) {
-                    pattern[0] = fd;
-                    file = file.slice(3);
-                }
-            }
-        }
-        // resolve and reduce . and .. portions in the file as well.
-        // dont' need to do the second phase, because it's only one string[]
-        const { optimizationLevel = 1 } = this.options;
-        if (optimizationLevel >= 2) {
+          }
+          // resolve and reduce . and .. portions in the file as well.
+          // dont' need to do the second phase, because it's only one string[]
+          const { optimizationLevel = 1 } = this.options;
+          if (optimizationLevel >= 2) {
             file = this.levelTwoFileOptimize(file);
-        }
-        this.debug('matchOne', this, { file, pattern });
-        this.debug('matchOne', file.length, pattern.length);
-        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {
-            this.debug('matchOne loop');
+          }
+          this.debug("matchOne", this, { file, pattern });
+          this.debug("matchOne", file.length, pattern.length);
+          for (
+            var fi = 0, pi = 0, fl = file.length, pl = pattern.length;
+            fi < fl && pi < pl;
+            fi++, pi++
+          ) {
+            this.debug("matchOne loop");
             var p = pattern[pi];
             var f = file[fi];
             this.debug(pattern, p, f);
@@ -22998,406 +31388,415 @@ class Minimatch {
             // some invalid regexp stuff in the set.
             /* c8 ignore start */
             if (p === false) {
-                return false;
+              return false;
             }
             /* c8 ignore stop */
             if (p === exports.GLOBSTAR) {
-                this.debug('GLOBSTAR', [pattern, p, f]);
-                // "**"
-                // a/**/b/**/c would match the following:
-                // a/b/x/y/z/c
-                // a/x/y/z/b/c
-                // a/b/x/b/x/c
-                // a/b/c
-                // To do this, take the rest of the pattern after
-                // the **, and see if it would match the file remainder.
-                // If so, return success.
-                // If not, the ** "swallows" a segment, and try again.
-                // This is recursively awful.
-                //
-                // a/**/b/**/c matching a/b/x/y/z/c
-                // - a matches a
-                // - doublestar
-                //   - matchOne(b/x/y/z/c, b/**/c)
-                //     - b matches b
-                //     - doublestar
-                //       - matchOne(x/y/z/c, c) -> no
-                //       - matchOne(y/z/c, c) -> no
-                //       - matchOne(z/c, c) -> no
-                //       - matchOne(c, c) yes, hit
-                var fr = fi;
-                var pr = pi + 1;
-                if (pr === pl) {
-                    this.debug('** at the end');
-                    // a ** at the end will just swallow the rest.
-                    // We have found a match.
-                    // however, it will not swallow /.x, unless
-                    // options.dot is set.
-                    // . and .. are *never* matched by **, for explosively
-                    // exponential reasons.
-                    for (; fi < fl; fi++) {
-                        if (file[fi] === '.' ||
-                            file[fi] === '..' ||
-                            (!options.dot && file[fi].charAt(0) === '.'))
-                            return false;
-                    }
-                    return true;
+              this.debug("GLOBSTAR", [pattern, p, f]);
+              // "**"
+              // a/**/b/**/c would match the following:
+              // a/b/x/y/z/c
+              // a/x/y/z/b/c
+              // a/b/x/b/x/c
+              // a/b/c
+              // To do this, take the rest of the pattern after
+              // the **, and see if it would match the file remainder.
+              // If so, return success.
+              // If not, the ** "swallows" a segment, and try again.
+              // This is recursively awful.
+              //
+              // a/**/b/**/c matching a/b/x/y/z/c
+              // - a matches a
+              // - doublestar
+              //   - matchOne(b/x/y/z/c, b/**/c)
+              //     - b matches b
+              //     - doublestar
+              //       - matchOne(x/y/z/c, c) -> no
+              //       - matchOne(y/z/c, c) -> no
+              //       - matchOne(z/c, c) -> no
+              //       - matchOne(c, c) yes, hit
+              var fr = fi;
+              var pr = pi + 1;
+              if (pr === pl) {
+                this.debug("** at the end");
+                // a ** at the end will just swallow the rest.
+                // We have found a match.
+                // however, it will not swallow /.x, unless
+                // options.dot is set.
+                // . and .. are *never* matched by **, for explosively
+                // exponential reasons.
+                for (; fi < fl; fi++) {
+                  if (
+                    file[fi] === "." ||
+                    file[fi] === ".." ||
+                    (!options.dot && file[fi].charAt(0) === ".")
+                  )
+                    return false;
                 }
-                // ok, let's see if we can swallow whatever we can.
-                while (fr < fl) {
-                    var swallowee = file[fr];
-                    this.debug('\nglobstar while', file, fr, pattern, pr, swallowee);
-                    // XXX remove this slice.  Just pass the start index.
-                    if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
-                        this.debug('globstar found match!', fr, fl, swallowee);
-                        // found a match.
-                        return true;
-                    }
-                    else {
-                        // can't swallow "." or ".." ever.
-                        // can only swallow ".foo" when explicitly asked.
-                        if (swallowee === '.' ||
-                            swallowee === '..' ||
-                            (!options.dot && swallowee.charAt(0) === '.')) {
-                            this.debug('dot detected!', file, fr, pattern, pr);
-                            break;
-                        }
-                        // ** swallows a segment, and continue.
-                        this.debug('globstar swallow a segment, and continue');
-                        fr++;
-                    }
+                return true;
+              }
+              // ok, let's see if we can swallow whatever we can.
+              while (fr < fl) {
+                var swallowee = file[fr];
+                this.debug(
+                  "\nglobstar while",
+                  file,
+                  fr,
+                  pattern,
+                  pr,
+                  swallowee
+                );
+                // XXX remove this slice.  Just pass the start index.
+                if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
+                  this.debug("globstar found match!", fr, fl, swallowee);
+                  // found a match.
+                  return true;
+                } else {
+                  // can't swallow "." or ".." ever.
+                  // can only swallow ".foo" when explicitly asked.
+                  if (
+                    swallowee === "." ||
+                    swallowee === ".." ||
+                    (!options.dot && swallowee.charAt(0) === ".")
+                  ) {
+                    this.debug("dot detected!", file, fr, pattern, pr);
+                    break;
+                  }
+                  // ** swallows a segment, and continue.
+                  this.debug("globstar swallow a segment, and continue");
+                  fr++;
                 }
-                // no match was found.
-                // However, in partial mode, we can't say this is necessarily over.
-                /* c8 ignore start */
-                if (partial) {
-                    // ran out of file
-                    this.debug('\n>>> no match, partial?', file, fr, pattern, pr);
-                    if (fr === fl) {
-                        return true;
-                    }
+              }
+              // no match was found.
+              // However, in partial mode, we can't say this is necessarily over.
+              /* c8 ignore start */
+              if (partial) {
+                // ran out of file
+                this.debug("\n>>> no match, partial?", file, fr, pattern, pr);
+                if (fr === fl) {
+                  return true;
                 }
-                /* c8 ignore stop */
-                return false;
+              }
+              /* c8 ignore stop */
+              return false;
             }
             // something other than **
             // non-magic patterns just have to match exactly
             // patterns with magic have been turned into regexps.
             let hit;
-            if (typeof p === 'string') {
-                hit = f === p;
-                this.debug('string match', p, f, hit);
+            if (typeof p === "string") {
+              hit = f === p;
+              this.debug("string match", p, f, hit);
+            } else {
+              hit = p.test(f);
+              this.debug("pattern match", p, f, hit);
             }
-            else {
-                hit = p.test(f);
-                this.debug('pattern match', p, f, hit);
-            }
-            if (!hit)
-                return false;
-        }
-        // Note: ending in / means that we'll get a final ""
-        // at the end of the pattern.  This can only match a
-        // corresponding "" at the end of the file.
-        // If the file ends in /, then it can only match a
-        // a pattern that ends in /, unless the pattern just
-        // doesn't have any more for it. But, a/b/ should *not*
-        // match "a/b/*", even though "" matches against the
-        // [^/]*? pattern, except in partial mode, where it might
-        // simply not be reached yet.
-        // However, a/b/ should still satisfy a/*
-        // now either we fell off the end of the pattern, or we're done.
-        if (fi === fl && pi === pl) {
+            if (!hit) return false;
+          }
+          // Note: ending in / means that we'll get a final ""
+          // at the end of the pattern.  This can only match a
+          // corresponding "" at the end of the file.
+          // If the file ends in /, then it can only match a
+          // a pattern that ends in /, unless the pattern just
+          // doesn't have any more for it. But, a/b/ should *not*
+          // match "a/b/*", even though "" matches against the
+          // [^/]*? pattern, except in partial mode, where it might
+          // simply not be reached yet.
+          // However, a/b/ should still satisfy a/*
+          // now either we fell off the end of the pattern, or we're done.
+          if (fi === fl && pi === pl) {
             // ran out of pattern and filename at the same time.
             // an exact hit!
             return true;
-        }
-        else if (fi === fl) {
+          } else if (fi === fl) {
             // ran out of file, but still had pattern left.
             // this is ok if we're doing the match as part of
             // a glob fs traversal.
             return partial;
-        }
-        else if (pi === pl) {
+          } else if (pi === pl) {
             // ran out of pattern, still have file left.
             // this is only acceptable if we're on the very last
             // empty segment of a file with a trailing slash.
             // a/* should match a/b/
-            return fi === fl - 1 && file[fi] === '';
+            return fi === fl - 1 && file[fi] === "";
             /* c8 ignore start */
-        }
-        else {
+          } else {
             // should be unreachable.
-            throw new Error('wtf?');
+            throw new Error("wtf?");
+          }
+          /* c8 ignore stop */
         }
-        /* c8 ignore stop */
-    }
-    braceExpand() {
-        return (0, exports.braceExpand)(this.pattern, this.options);
-    }
-    parse(pattern) {
-        assertValidPattern(pattern);
-        const options = this.options;
-        // shortcuts
-        if (pattern === '**')
-            return exports.GLOBSTAR;
-        if (pattern === '')
-            return '';
-        // far and away, the most common glob pattern parts are
-        // *, *.*, and *.  Add a fast check method for those.
-        let m;
-        let fastTest = null;
-        if ((m = pattern.match(starRE))) {
+        braceExpand() {
+          return (0, exports.braceExpand)(this.pattern, this.options);
+        }
+        parse(pattern) {
+          assertValidPattern(pattern);
+          const options = this.options;
+          // shortcuts
+          if (pattern === "**") return exports.GLOBSTAR;
+          if (pattern === "") return "";
+          // far and away, the most common glob pattern parts are
+          // *, *.*, and *.  Add a fast check method for those.
+          let m;
+          let fastTest = null;
+          if ((m = pattern.match(starRE))) {
             fastTest = options.dot ? starTestDot : starTest;
-        }
-        else if ((m = pattern.match(starDotExtRE))) {
-            fastTest = (options.nocase
+          } else if ((m = pattern.match(starDotExtRE))) {
+            fastTest = (
+              options.nocase
                 ? options.dot
-                    ? starDotExtTestNocaseDot
-                    : starDotExtTestNocase
+                  ? starDotExtTestNocaseDot
+                  : starDotExtTestNocase
                 : options.dot
-                    ? starDotExtTestDot
-                    : starDotExtTest)(m[1]);
-        }
-        else if ((m = pattern.match(qmarksRE))) {
-            fastTest = (options.nocase
+                ? starDotExtTestDot
+                : starDotExtTest
+            )(m[1]);
+          } else if ((m = pattern.match(qmarksRE))) {
+            fastTest = (
+              options.nocase
                 ? options.dot
-                    ? qmarksTestNocaseDot
-                    : qmarksTestNocase
+                  ? qmarksTestNocaseDot
+                  : qmarksTestNocase
                 : options.dot
-                    ? qmarksTestDot
-                    : qmarksTest)(m);
-        }
-        else if ((m = pattern.match(starDotStarRE))) {
+                ? qmarksTestDot
+                : qmarksTest
+            )(m);
+          } else if ((m = pattern.match(starDotStarRE))) {
             fastTest = options.dot ? starDotStarTestDot : starDotStarTest;
-        }
-        else if ((m = pattern.match(dotStarRE))) {
+          } else if ((m = pattern.match(dotStarRE))) {
             fastTest = dotStarTest;
-        }
-        let re = '';
-        let hasMagic = false;
-        let escaping = false;
-        // ? => one single character
-        const patternListStack = [];
-        const negativeLists = [];
-        let stateChar = false;
-        let uflag = false;
-        let pl;
-        // . and .. never match anything that doesn't start with .,
-        // even when options.dot is set.  However, if the pattern
-        // starts with ., then traversal patterns can match.
-        let dotTravAllowed = pattern.charAt(0) === '.';
-        let dotFileAllowed = options.dot || dotTravAllowed;
-        const patternStart = () => dotTravAllowed
-            ? ''
-            : dotFileAllowed
-                ? '(?!(?:^|\\/)\\.{1,2}(?:$|\\/))'
-                : '(?!\\.)';
-        const subPatternStart = (p) => p.charAt(0) === '.'
-            ? ''
-            : options.dot
-                ? '(?!(?:^|\\/)\\.{1,2}(?:$|\\/))'
-                : '(?!\\.)';
-        const clearStateChar = () => {
+          }
+          let re = "";
+          let hasMagic = false;
+          let escaping = false;
+          // ? => one single character
+          const patternListStack = [];
+          const negativeLists = [];
+          let stateChar = false;
+          let uflag = false;
+          let pl;
+          // . and .. never match anything that doesn't start with .,
+          // even when options.dot is set.  However, if the pattern
+          // starts with ., then traversal patterns can match.
+          let dotTravAllowed = pattern.charAt(0) === ".";
+          let dotFileAllowed = options.dot || dotTravAllowed;
+          const patternStart = () =>
+            dotTravAllowed
+              ? ""
+              : dotFileAllowed
+              ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))"
+              : "(?!\\.)";
+          const subPatternStart = (p) =>
+            p.charAt(0) === "."
+              ? ""
+              : options.dot
+              ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))"
+              : "(?!\\.)";
+          const clearStateChar = () => {
             if (stateChar) {
-                // we had some state-tracking character
-                // that wasn't consumed by this pass.
-                switch (stateChar) {
-                    case '*':
-                        re += star;
-                        hasMagic = true;
-                        break;
-                    case '?':
-                        re += qmark;
-                        hasMagic = true;
-                        break;
-                    default:
-                        re += '\\' + stateChar;
-                        break;
-                }
-                this.debug('clearStateChar %j %j', stateChar, re);
-                stateChar = false;
+              // we had some state-tracking character
+              // that wasn't consumed by this pass.
+              switch (stateChar) {
+                case "*":
+                  re += star;
+                  hasMagic = true;
+                  break;
+                case "?":
+                  re += qmark;
+                  hasMagic = true;
+                  break;
+                default:
+                  re += "\\" + stateChar;
+                  break;
+              }
+              this.debug("clearStateChar %j %j", stateChar, re);
+              stateChar = false;
             }
-        };
-        for (let i = 0, c; i < pattern.length && (c = pattern.charAt(i)); i++) {
-            this.debug('%s\t%s %s %j', pattern, i, re, c);
+          };
+          for (
+            let i = 0, c;
+            i < pattern.length && (c = pattern.charAt(i));
+            i++
+          ) {
+            this.debug("%s\t%s %s %j", pattern, i, re, c);
             // skip over any that are escaped.
             if (escaping) {
-                // completely not allowed, even escaped.
-                // should be impossible.
-                /* c8 ignore start */
-                if (c === '/') {
-                    return false;
-                }
-                /* c8 ignore stop */
-                if (reSpecials[c]) {
-                    re += '\\';
-                }
-                re += c;
-                escaping = false;
-                continue;
+              // completely not allowed, even escaped.
+              // should be impossible.
+              /* c8 ignore start */
+              if (c === "/") {
+                return false;
+              }
+              /* c8 ignore stop */
+              if (reSpecials[c]) {
+                re += "\\";
+              }
+              re += c;
+              escaping = false;
+              continue;
             }
             switch (c) {
-                // Should already be path-split by now.
-                /* c8 ignore start */
-                case '/': {
-                    return false;
+              // Should already be path-split by now.
+              /* c8 ignore start */
+              case "/": {
+                return false;
+              }
+              /* c8 ignore stop */
+              case "\\":
+                clearStateChar();
+                escaping = true;
+                continue;
+              // the various stateChar values
+              // for the "extglob" stuff.
+              case "?":
+              case "*":
+              case "+":
+              case "@":
+              case "!":
+                this.debug("%s\t%s %s %j <-- stateChar", pattern, i, re, c);
+                // if we already have a stateChar, then it means
+                // that there was something like ** or +? in there.
+                // Handle the stateChar, then proceed with this one.
+                this.debug("call clearStateChar %j", stateChar);
+                clearStateChar();
+                stateChar = c;
+                // if extglob is disabled, then +(asdf|foo) isn't a thing.
+                // just clear the statechar *now*, rather than even diving into
+                // the patternList stuff.
+                if (options.noext) clearStateChar();
+                continue;
+              case "(": {
+                if (!stateChar) {
+                  re += "\\(";
+                  continue;
                 }
-                /* c8 ignore stop */
-                case '\\':
-                    clearStateChar();
-                    escaping = true;
-                    continue;
-                // the various stateChar values
-                // for the "extglob" stuff.
-                case '?':
-                case '*':
-                case '+':
-                case '@':
-                case '!':
-                    this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c);
-                    // if we already have a stateChar, then it means
-                    // that there was something like ** or +? in there.
-                    // Handle the stateChar, then proceed with this one.
-                    this.debug('call clearStateChar %j', stateChar);
-                    clearStateChar();
-                    stateChar = c;
-                    // if extglob is disabled, then +(asdf|foo) isn't a thing.
-                    // just clear the statechar *now*, rather than even diving into
-                    // the patternList stuff.
-                    if (options.noext)
-                        clearStateChar();
-                    continue;
-                case '(': {
-                    if (!stateChar) {
-                        re += '\\(';
-                        continue;
-                    }
-                    const plEntry = {
-                        type: stateChar,
-                        start: i - 1,
-                        reStart: re.length,
-                        open: plTypes[stateChar].open,
-                        close: plTypes[stateChar].close,
-                    };
-                    this.debug(this.pattern, '\t', plEntry);
-                    patternListStack.push(plEntry);
-                    // negation is (?:(?!(?:js)(?:))[^/]*)
-                    re += plEntry.open;
-                    // next entry starts with a dot maybe?
-                    if (plEntry.start === 0 && plEntry.type !== '!') {
-                        dotTravAllowed = true;
-                        re += subPatternStart(pattern.slice(i + 1));
-                    }
-                    this.debug('plType %j %j', stateChar, re);
-                    stateChar = false;
-                    continue;
+                const plEntry = {
+                  type: stateChar,
+                  start: i - 1,
+                  reStart: re.length,
+                  open: plTypes[stateChar].open,
+                  close: plTypes[stateChar].close,
+                };
+                this.debug(this.pattern, "\t", plEntry);
+                patternListStack.push(plEntry);
+                // negation is (?:(?!(?:js)(?:))[^/]*)
+                re += plEntry.open;
+                // next entry starts with a dot maybe?
+                if (plEntry.start === 0 && plEntry.type !== "!") {
+                  dotTravAllowed = true;
+                  re += subPatternStart(pattern.slice(i + 1));
                 }
-                case ')': {
-                    const plEntry = patternListStack[patternListStack.length - 1];
-                    if (!plEntry) {
-                        re += '\\)';
-                        continue;
-                    }
-                    patternListStack.pop();
-                    // closing an extglob
-                    clearStateChar();
-                    hasMagic = true;
-                    pl = plEntry;
-                    // negation is (?:(?!js)[^/]*)
-                    // The others are (?:)
-                    re += pl.close;
-                    if (pl.type === '!') {
-                        negativeLists.push(Object.assign(pl, { reEnd: re.length }));
-                    }
-                    continue;
+                this.debug("plType %j %j", stateChar, re);
+                stateChar = false;
+                continue;
+              }
+              case ")": {
+                const plEntry = patternListStack[patternListStack.length - 1];
+                if (!plEntry) {
+                  re += "\\)";
+                  continue;
                 }
-                case '|': {
-                    const plEntry = patternListStack[patternListStack.length - 1];
-                    if (!plEntry) {
-                        re += '\\|';
-                        continue;
-                    }
-                    clearStateChar();
-                    re += '|';
-                    // next subpattern can start with a dot?
-                    if (plEntry.start === 0 && plEntry.type !== '!') {
-                        dotTravAllowed = true;
-                        re += subPatternStart(pattern.slice(i + 1));
-                    }
-                    continue;
+                patternListStack.pop();
+                // closing an extglob
+                clearStateChar();
+                hasMagic = true;
+                pl = plEntry;
+                // negation is (?:(?!js)[^/]*)
+                // The others are (?:)
+                re += pl.close;
+                if (pl.type === "!") {
+                  negativeLists.push(Object.assign(pl, { reEnd: re.length }));
                 }
-                // these are mostly the same in regexp and glob
-                case '[':
-                    // swallow any state-tracking char before the [
-                    clearStateChar();
-                    const [src, needUflag, consumed, magic] = (0, brace_expressions_js_1.parseClass)(pattern, i);
-                    if (consumed) {
-                        re += src;
-                        uflag = uflag || needUflag;
-                        i += consumed - 1;
-                        hasMagic = hasMagic || magic;
-                    }
-                    else {
-                        re += '\\[';
-                    }
-                    continue;
-                case ']':
-                    re += '\\' + c;
-                    continue;
-                default:
-                    // swallow any state char that wasn't consumed
-                    clearStateChar();
-                    re += regExpEscape(c);
-                    break;
+                continue;
+              }
+              case "|": {
+                const plEntry = patternListStack[patternListStack.length - 1];
+                if (!plEntry) {
+                  re += "\\|";
+                  continue;
+                }
+                clearStateChar();
+                re += "|";
+                // next subpattern can start with a dot?
+                if (plEntry.start === 0 && plEntry.type !== "!") {
+                  dotTravAllowed = true;
+                  re += subPatternStart(pattern.slice(i + 1));
+                }
+                continue;
+              }
+              // these are mostly the same in regexp and glob
+              case "[":
+                // swallow any state-tracking char before the [
+                clearStateChar();
+                const [src, needUflag, consumed, magic] = (0,
+                brace_expressions_js_1.parseClass)(pattern, i);
+                if (consumed) {
+                  re += src;
+                  uflag = uflag || needUflag;
+                  i += consumed - 1;
+                  hasMagic = hasMagic || magic;
+                } else {
+                  re += "\\[";
+                }
+                continue;
+              case "]":
+                re += "\\" + c;
+                continue;
+              default:
+                // swallow any state char that wasn't consumed
+                clearStateChar();
+                re += regExpEscape(c);
+                break;
             } // switch
-        } // for
-        // handle the case where we had a +( thing at the *end*
-        // of the pattern.
-        // each pattern list stack adds 3 chars, and we need to go through
-        // and escape any | chars that were passed through as-is for the regexp.
-        // Go through and escape them, taking care not to double-escape any
-        // | chars that were already escaped.
-        for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
+          } // for
+          // handle the case where we had a +( thing at the *end*
+          // of the pattern.
+          // each pattern list stack adds 3 chars, and we need to go through
+          // and escape any | chars that were passed through as-is for the regexp.
+          // Go through and escape them, taking care not to double-escape any
+          // | chars that were already escaped.
+          for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
             let tail;
             tail = re.slice(pl.reStart + pl.open.length);
-            this.debug(this.pattern, 'setting tail', re, pl);
+            this.debug(this.pattern, "setting tail", re, pl);
             // maybe some even number of \, then maybe 1 \, followed by a |
             tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, (_, $1, $2) => {
-                if (!$2) {
-                    // the | isn't already escaped, so escape it.
-                    $2 = '\\';
-                    // should already be done
-                    /* c8 ignore start */
-                }
-                /* c8 ignore stop */
-                // need to escape all those slashes *again*, without escaping the
-                // one that we need for escaping the | character.  As it works out,
-                // escaping an even number of slashes can be done by simply repeating
-                // it exactly after itself.  That's why this trick works.
-                //
-                // I am sorry that you have to see this.
-                return $1 + $1 + $2 + '|';
+              if (!$2) {
+                // the | isn't already escaped, so escape it.
+                $2 = "\\";
+                // should already be done
+                /* c8 ignore start */
+              }
+              /* c8 ignore stop */
+              // need to escape all those slashes *again*, without escaping the
+              // one that we need for escaping the | character.  As it works out,
+              // escaping an even number of slashes can be done by simply repeating
+              // it exactly after itself.  That's why this trick works.
+              //
+              // I am sorry that you have to see this.
+              return $1 + $1 + $2 + "|";
             });
-            this.debug('tail=%j\n   %s', tail, tail, pl, re);
-            const t = pl.type === '*' ? star : pl.type === '?' ? qmark : '\\' + pl.type;
+            this.debug("tail=%j\n   %s", tail, tail, pl, re);
+            const t =
+              pl.type === "*" ? star : pl.type === "?" ? qmark : "\\" + pl.type;
             hasMagic = true;
-            re = re.slice(0, pl.reStart) + t + '\\(' + tail;
-        }
-        // handle trailing things that only matter at the very end.
-        clearStateChar();
-        if (escaping) {
+            re = re.slice(0, pl.reStart) + t + "\\(" + tail;
+          }
+          // handle trailing things that only matter at the very end.
+          clearStateChar();
+          if (escaping) {
             // trailing \\
-            re += '\\\\';
-        }
-        // only need to apply the nodot start if the re starts with
-        // something that could conceivably capture a dot
-        const addPatternStart = addPatternStartSet[re.charAt(0)];
-        // Hack to work around lack of negative lookbehind in JS
-        // A pattern like: *.!(x).!(y|z) needs to ensure that a name
-        // like 'a.xyz.yz' doesn't match.  So, the first negative
-        // lookahead, has to look ALL the way ahead, to the end of
-        // the pattern.
-        for (let n = negativeLists.length - 1; n > -1; n--) {
+            re += "\\\\";
+          }
+          // only need to apply the nodot start if the re starts with
+          // something that could conceivably capture a dot
+          const addPatternStart = addPatternStartSet[re.charAt(0)];
+          // Hack to work around lack of negative lookbehind in JS
+          // A pattern like: *.!(x).!(y|z) needs to ensure that a name
+          // like 'a.xyz.yz' doesn't match.  So, the first negative
+          // lookahead, has to look ALL the way ahead, to the end of
+          // the pattern.
+          for (let n = negativeLists.length - 1; n > -1; n--) {
             const nl = negativeLists[n];
             const nlBefore = re.slice(0, nl.reStart);
             const nlFirst = re.slice(nl.reStart, nl.reEnd - 8);
@@ -23406,702 +31805,922 @@ class Minimatch {
             // Handle nested stuff like *(*.js|!(*.json)), where open parens
             // mean that we should *not* include the ) in the bit that is considered
             // "after" the negated section.
-            const closeParensBefore = nlBefore.split(')').length;
-            const openParensBefore = nlBefore.split('(').length - closeParensBefore;
+            const closeParensBefore = nlBefore.split(")").length;
+            const openParensBefore =
+              nlBefore.split("(").length - closeParensBefore;
             let cleanAfter = nlAfter;
             for (let i = 0; i < openParensBefore; i++) {
-                cleanAfter = cleanAfter.replace(/\)[+*?]?/, '');
+              cleanAfter = cleanAfter.replace(/\)[+*?]?/, "");
             }
             nlAfter = cleanAfter;
-            const dollar = nlAfter === '' ? '(?:$|\\/)' : '';
+            const dollar = nlAfter === "" ? "(?:$|\\/)" : "";
             re = nlBefore + nlFirst + nlAfter + dollar + nlLast;
-        }
-        // if the re is not "" at this point, then we need to make sure
-        // it doesn't match against an empty path part.
-        // Otherwise a/* will match a/, which it should not.
-        if (re !== '' && hasMagic) {
-            re = '(?=.)' + re;
-        }
-        if (addPatternStart) {
+          }
+          // if the re is not "" at this point, then we need to make sure
+          // it doesn't match against an empty path part.
+          // Otherwise a/* will match a/, which it should not.
+          if (re !== "" && hasMagic) {
+            re = "(?=.)" + re;
+          }
+          if (addPatternStart) {
             re = patternStart() + re;
-        }
-        // if it's nocase, and the lcase/uppercase don't match, it's magic
-        if (options.nocase && !hasMagic && !options.nocaseMagicOnly) {
+          }
+          // if it's nocase, and the lcase/uppercase don't match, it's magic
+          if (options.nocase && !hasMagic && !options.nocaseMagicOnly) {
             hasMagic = pattern.toUpperCase() !== pattern.toLowerCase();
-        }
-        // skip the regexp for non-magical patterns
-        // unescape anything in it, though, so that it'll be
-        // an exact match against a file etc.
-        if (!hasMagic) {
+          }
+          // skip the regexp for non-magical patterns
+          // unescape anything in it, though, so that it'll be
+          // an exact match against a file etc.
+          if (!hasMagic) {
             return globUnescape(re);
-        }
-        const flags = (options.nocase ? 'i' : '') + (uflag ? 'u' : '');
-        try {
+          }
+          const flags = (options.nocase ? "i" : "") + (uflag ? "u" : "");
+          try {
             const ext = fastTest
-                ? {
-                    _glob: pattern,
-                    _src: re,
-                    test: fastTest,
+              ? {
+                  _glob: pattern,
+                  _src: re,
+                  test: fastTest,
                 }
-                : {
-                    _glob: pattern,
-                    _src: re,
+              : {
+                  _glob: pattern,
+                  _src: re,
                 };
-            return Object.assign(new RegExp('^' + re + '$', flags), ext);
+            return Object.assign(new RegExp("^" + re + "$", flags), ext);
             /* c8 ignore start */
-        }
-        catch (er) {
+          } catch (er) {
             // should be impossible
             // If it was an invalid regular expression, then it can't match
             // anything.  This trick looks for a character after the end of
             // the string, which is of course impossible, except in multi-line
             // mode, but it's not a /m regex.
-            this.debug('invalid regexp', er);
-            return new RegExp('$.');
+            this.debug("invalid regexp", er);
+            return new RegExp("$.");
+          }
+          /* c8 ignore stop */
         }
-        /* c8 ignore stop */
-    }
-    makeRe() {
-        if (this.regexp || this.regexp === false)
-            return this.regexp;
-        // at this point, this.set is a 2d array of partial
-        // pattern strings, or "**".
-        //
-        // It's better to use .match().  This function shouldn't
-        // be used, really, but it's pretty convenient sometimes,
-        // when you just want to work with a regex.
-        const set = this.set;
-        if (!set.length) {
+        makeRe() {
+          if (this.regexp || this.regexp === false) return this.regexp;
+          // at this point, this.set is a 2d array of partial
+          // pattern strings, or "**".
+          //
+          // It's better to use .match().  This function shouldn't
+          // be used, really, but it's pretty convenient sometimes,
+          // when you just want to work with a regex.
+          const set = this.set;
+          if (!set.length) {
             this.regexp = false;
             return this.regexp;
-        }
-        const options = this.options;
-        const twoStar = options.noglobstar
+          }
+          const options = this.options;
+          const twoStar = options.noglobstar
             ? star
             : options.dot
-                ? twoStarDot
-                : twoStarNoDot;
-        const flags = options.nocase ? 'i' : '';
-        // regexpify non-globstar patterns
-        // if ** is only item, then we just do one twoStar
-        // if ** is first, and there are more, prepend (\/|twoStar\/)? to next
-        // if ** is last, append (\/twoStar|) to previous
-        // if ** is in the middle, append (\/|\/twoStar\/) to previous
-        // then filter out GLOBSTAR symbols
-        let re = set
-            .map(pattern => {
-            const pp = pattern.map(p => typeof p === 'string'
-                ? regExpEscape(p)
-                : p === exports.GLOBSTAR
-                    ? exports.GLOBSTAR
-                    : p._src);
-            pp.forEach((p, i) => {
+            ? twoStarDot
+            : twoStarNoDot;
+          const flags = options.nocase ? "i" : "";
+          // regexpify non-globstar patterns
+          // if ** is only item, then we just do one twoStar
+          // if ** is first, and there are more, prepend (\/|twoStar\/)? to next
+          // if ** is last, append (\/twoStar|) to previous
+          // if ** is in the middle, append (\/|\/twoStar\/) to previous
+          // then filter out GLOBSTAR symbols
+          let re = set
+            .map((pattern) => {
+              const pp = pattern.map((p) =>
+                typeof p === "string"
+                  ? regExpEscape(p)
+                  : p === exports.GLOBSTAR
+                  ? exports.GLOBSTAR
+                  : p._src
+              );
+              pp.forEach((p, i) => {
                 const next = pp[i + 1];
                 const prev = pp[i - 1];
                 if (p !== exports.GLOBSTAR || prev === exports.GLOBSTAR) {
-                    return;
+                  return;
                 }
                 if (prev === undefined) {
-                    if (next !== undefined && next !== exports.GLOBSTAR) {
-                        pp[i + 1] = '(?:\\/|' + twoStar + '\\/)?' + next;
-                    }
-                    else {
-                        pp[i] = twoStar;
-                    }
+                  if (next !== undefined && next !== exports.GLOBSTAR) {
+                    pp[i + 1] = "(?:\\/|" + twoStar + "\\/)?" + next;
+                  } else {
+                    pp[i] = twoStar;
+                  }
+                } else if (next === undefined) {
+                  pp[i - 1] = prev + "(?:\\/|" + twoStar + ")?";
+                } else if (next !== exports.GLOBSTAR) {
+                  pp[i - 1] = prev + "(?:\\/|\\/" + twoStar + "\\/)" + next;
+                  pp[i + 1] = exports.GLOBSTAR;
                 }
-                else if (next === undefined) {
-                    pp[i - 1] = prev + '(?:\\/|' + twoStar + ')?';
-                }
-                else if (next !== exports.GLOBSTAR) {
-                    pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + '\\/)' + next;
-                    pp[i + 1] = exports.GLOBSTAR;
-                }
-            });
-            return pp.filter(p => p !== exports.GLOBSTAR).join('/');
-        })
-            .join('|');
-        // must match entire pattern
-        // ending in a * or ** will make it less strict.
-        re = '^(?:' + re + ')$';
-        // can match anything, as long as it's not this.
-        if (this.negate)
-            re = '^(?!' + re + ').*$';
-        try {
+              });
+              return pp.filter((p) => p !== exports.GLOBSTAR).join("/");
+            })
+            .join("|");
+          // must match entire pattern
+          // ending in a * or ** will make it less strict.
+          re = "^(?:" + re + ")$";
+          // can match anything, as long as it's not this.
+          if (this.negate) re = "^(?!" + re + ").*$";
+          try {
             this.regexp = new RegExp(re, flags);
             /* c8 ignore start */
-        }
-        catch (ex) {
+          } catch (ex) {
             // should be impossible
             this.regexp = false;
+          }
+          /* c8 ignore stop */
+          return this.regexp;
         }
-        /* c8 ignore stop */
-        return this.regexp;
-    }
-    slashSplit(p) {
-        // if p starts with // on windows, we preserve that
-        // so that UNC paths aren't broken.  Otherwise, any number of
-        // / characters are coalesced into one, unless
-        // preserveMultipleSlashes is set to true.
-        if (this.preserveMultipleSlashes) {
-            return p.split('/');
-        }
-        else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
+        slashSplit(p) {
+          // if p starts with // on windows, we preserve that
+          // so that UNC paths aren't broken.  Otherwise, any number of
+          // / characters are coalesced into one, unless
+          // preserveMultipleSlashes is set to true.
+          if (this.preserveMultipleSlashes) {
+            return p.split("/");
+          } else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
             // add an extra '' for the one we lose
-            return ['', ...p.split(/\/+/)];
-        }
-        else {
+            return ["", ...p.split(/\/+/)];
+          } else {
             return p.split(/\/+/);
+          }
         }
-    }
-    match(f, partial = this.partial) {
-        this.debug('match', f, this.pattern);
-        // short-circuit in the case of busted things.
-        // comments, etc.
-        if (this.comment) {
+        match(f, partial = this.partial) {
+          this.debug("match", f, this.pattern);
+          // short-circuit in the case of busted things.
+          // comments, etc.
+          if (this.comment) {
             return false;
-        }
-        if (this.empty) {
-            return f === '';
-        }
-        if (f === '/' && partial) {
+          }
+          if (this.empty) {
+            return f === "";
+          }
+          if (f === "/" && partial) {
             return true;
-        }
-        const options = this.options;
-        // windows: need to use /, not \
-        if (this.isWindows) {
-            f = f.split('\\').join('/');
-        }
-        // treat the test path as a set of pathparts.
-        const ff = this.slashSplit(f);
-        this.debug(this.pattern, 'split', ff);
-        // just ONE of the pattern sets in this.set needs to match
-        // in order for it to be valid.  If negating, then just one
-        // match means that we have failed.
-        // Either way, return on the first hit.
-        const set = this.set;
-        this.debug(this.pattern, 'set', set);
-        // Find the basename of the path by looking for the last non-empty segment
-        let filename = ff[ff.length - 1];
-        if (!filename) {
+          }
+          const options = this.options;
+          // windows: need to use /, not \
+          if (this.isWindows) {
+            f = f.split("\\").join("/");
+          }
+          // treat the test path as a set of pathparts.
+          const ff = this.slashSplit(f);
+          this.debug(this.pattern, "split", ff);
+          // just ONE of the pattern sets in this.set needs to match
+          // in order for it to be valid.  If negating, then just one
+          // match means that we have failed.
+          // Either way, return on the first hit.
+          const set = this.set;
+          this.debug(this.pattern, "set", set);
+          // Find the basename of the path by looking for the last non-empty segment
+          let filename = ff[ff.length - 1];
+          if (!filename) {
             for (let i = ff.length - 2; !filename && i >= 0; i--) {
-                filename = ff[i];
+              filename = ff[i];
             }
-        }
-        for (let i = 0; i < set.length; i++) {
+          }
+          for (let i = 0; i < set.length; i++) {
             const pattern = set[i];
             let file = ff;
             if (options.matchBase && pattern.length === 1) {
-                file = [filename];
+              file = [filename];
             }
             const hit = this.matchOne(file, pattern, partial);
             if (hit) {
-                if (options.flipNegate) {
-                    return true;
-                }
-                return !this.negate;
+              if (options.flipNegate) {
+                return true;
+              }
+              return !this.negate;
             }
-        }
-        // didn't get any hits.  this is success if it's a negative
-        // pattern, failure otherwise.
-        if (options.flipNegate) {
+          }
+          // didn't get any hits.  this is success if it's a negative
+          // pattern, failure otherwise.
+          if (options.flipNegate) {
             return false;
+          }
+          return this.negate;
         }
-        return this.negate;
-    }
-    static defaults(def) {
-        return exports.minimatch.defaults(def).Minimatch;
-    }
-}
-exports.Minimatch = Minimatch;
-/* c8 ignore start */
-var escape_js_2 = __nccwpck_require__(9004);
-Object.defineProperty(exports, "escape", ({ enumerable: true, get: function () { return escape_js_2.escape; } }));
-var unescape_js_2 = __nccwpck_require__(7305);
-Object.defineProperty(exports, "unescape", ({ enumerable: true, get: function () { return unescape_js_2.unescape; } }));
-/* c8 ignore stop */
-exports.minimatch.Minimatch = Minimatch;
-exports.minimatch.escape = escape_js_1.escape;
-exports.minimatch.unescape = unescape_js_1.unescape;
-//# sourceMappingURL=index.js.map
+        static defaults(def) {
+          return exports.minimatch.defaults(def).Minimatch;
+        }
+      }
+      exports.Minimatch = Minimatch;
+      /* c8 ignore start */
+      var escape_js_2 = __nccwpck_require__(9004);
+      Object.defineProperty(exports, "escape", {
+        enumerable: true,
+        get: function () {
+          return escape_js_2.escape;
+        },
+      });
+      var unescape_js_2 = __nccwpck_require__(7305);
+      Object.defineProperty(exports, "unescape", {
+        enumerable: true,
+        get: function () {
+          return unescape_js_2.unescape;
+        },
+      });
+      /* c8 ignore stop */
+      exports.minimatch.Minimatch = Minimatch;
+      exports.minimatch.escape = escape_js_1.escape;
+      exports.minimatch.unescape = unescape_js_1.unescape;
+      //# sourceMappingURL=index.js.map
 
-/***/ }),
-
-/***/ 7305:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.unescape = void 0;
-/**
- * Un-escape a string that has been escaped with {@link escape}.
- *
- * If the {@link windowsPathsNoEscape} option is used, then square-brace
- * escapes are removed, but not backslash escapes.  For example, it will turn
- * the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`,
- * becuase `\` is a path separator in `windowsPathsNoEscape` mode.
- *
- * When `windowsPathsNoEscape` is not set, then both brace escapes and
- * backslash escapes are removed.
- *
- * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
- * or unescaped.
- */
-const unescape = (s, { windowsPathsNoEscape = false, } = {}) => {
-    return windowsPathsNoEscape
-        ? s.replace(/\[([^\/\\])\]/g, '$1')
-        : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, '$1$2').replace(/\\([^\/])/g, '$1');
-};
-exports.unescape = unescape;
-//# sourceMappingURL=unescape.js.map
-
-/***/ }),
-
-/***/ 4595:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.MultipartBody = void 0;
-/**
- * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
- */
-class MultipartBody {
-    constructor(body) {
-        this.body = body;
-    }
-    get [Symbol.toStringTag]() {
-        return 'MultipartBody';
-    }
-}
-exports.MultipartBody = MultipartBody;
-//# sourceMappingURL=MultipartBody.js.map
-
-/***/ }),
-
-/***/ 3506:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
-    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-/**
- * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
- */
-__exportStar(__nccwpck_require__(1749), exports);
-//# sourceMappingURL=runtime-node.js.map
-
-/***/ }),
-
-/***/ 6678:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-/**
- * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
- */
-const shims = __nccwpck_require__(4437);
-const auto = __nccwpck_require__(3506);
-if (!shims.kind) shims.setShims(auto.getRuntime(), { auto: true });
-for (const property of Object.keys(shims)) {
-  Object.defineProperty(exports, property, {
-    get() {
-      return shims[property];
+      /***/
     },
-  });
-}
 
+    /***/ 7305: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
 
-/***/ }),
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.unescape = void 0;
+      /**
+       * Un-escape a string that has been escaped with {@link escape}.
+       *
+       * If the {@link windowsPathsNoEscape} option is used, then square-brace
+       * escapes are removed, but not backslash escapes.  For example, it will turn
+       * the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`,
+       * becuase `\` is a path separator in `windowsPathsNoEscape` mode.
+       *
+       * When `windowsPathsNoEscape` is not set, then both brace escapes and
+       * backslash escapes are removed.
+       *
+       * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
+       * or unescaped.
+       */
+      const unescape = (s, { windowsPathsNoEscape = false } = {}) => {
+        return windowsPathsNoEscape
+          ? s.replace(/\[([^\/\\])\]/g, "$1")
+          : s
+              .replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2")
+              .replace(/\\([^\/])/g, "$1");
+      };
+      exports.unescape = unescape;
+      //# sourceMappingURL=unescape.js.map
 
-/***/ 1749:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+      /***/
+    },
 
-"use strict";
+    /***/ 4595: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
 
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-var __importDefault = (this && this.__importDefault) || function (mod) {
-    return (mod && mod.__esModule) ? mod : { "default": mod };
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.getRuntime = void 0;
-/**
- * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
- */
-const nf = __importStar(__nccwpck_require__(467));
-const fd = __importStar(__nccwpck_require__(880));
-const agentkeepalive_1 = __importDefault(__nccwpck_require__(4623));
-const abort_controller_1 = __nccwpck_require__(1659);
-const node_fs_1 = __nccwpck_require__(7561);
-const form_data_encoder_1 = __nccwpck_require__(8824);
-const node_stream_1 = __nccwpck_require__(4492);
-const MultipartBody_1 = __nccwpck_require__(4595);
-// @ts-ignore (this package does not have proper export maps for this export)
-const ponyfill_es2018_js_1 = __nccwpck_require__(1452);
-let fileFromPathWarned = false;
-async function fileFromPath(path, ...args) {
-    // this import fails in environments that don't handle export maps correctly, like old versions of Jest
-    const { fileFromPath: _fileFromPath } = await Promise.resolve().then(() => __importStar(__nccwpck_require__(8735)));
-    if (!fileFromPathWarned) {
-        console.warn(`fileFromPath is deprecated; use fs.createReadStream(${JSON.stringify(path)}) instead`);
-        fileFromPathWarned = true;
-    }
-    // @ts-ignore
-    return await _fileFromPath(path, ...args);
-}
-const defaultHttpAgent = new agentkeepalive_1.default({ keepAlive: true, timeout: 5 * 60 * 1000 });
-const defaultHttpsAgent = new agentkeepalive_1.default.HttpsAgent({ keepAlive: true, timeout: 5 * 60 * 1000 });
-async function getMultipartRequestOptions(form, opts) {
-    const encoder = new form_data_encoder_1.FormDataEncoder(form);
-    const readable = node_stream_1.Readable.from(encoder);
-    const body = new MultipartBody_1.MultipartBody(readable);
-    const headers = {
-        ...opts.headers,
-        ...encoder.headers,
-        'Content-Length': encoder.contentLength,
-    };
-    return { ...opts, body: body, headers };
-}
-function getRuntime() {
-    // Polyfill global object if needed.
-    if (typeof AbortController === 'undefined') {
-        // @ts-expect-error (the types are subtly different, but compatible in practice)
-        globalThis.AbortController = abort_controller_1.AbortController;
-    }
-    return {
-        kind: 'node',
-        fetch: nf.default,
-        Request: nf.Request,
-        Response: nf.Response,
-        Headers: nf.Headers,
-        FormData: fd.FormData,
-        Blob: fd.Blob,
-        File: fd.File,
-        ReadableStream: ponyfill_es2018_js_1.ReadableStream,
-        getMultipartRequestOptions,
-        getDefaultAgent: (url) => (url.startsWith('https') ? defaultHttpsAgent : defaultHttpAgent),
-        fileFromPath,
-        isFsReadStream: (value) => value instanceof node_fs_1.ReadStream,
-    };
-}
-exports.getRuntime = getRuntime;
-//# sourceMappingURL=node-runtime.js.map
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.MultipartBody = void 0;
+      /**
+       * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
+       */
+      class MultipartBody {
+        constructor(body) {
+          this.body = body;
+        }
+        get [Symbol.toStringTag]() {
+          return "MultipartBody";
+        }
+      }
+      exports.MultipartBody = MultipartBody;
+      //# sourceMappingURL=MultipartBody.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 4437:
-/***/ ((__unused_webpack_module, exports) => {
+    /***/ 3506: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-"use strict";
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) k2 = k;
+              o[k2] = m[k];
+            });
+      var __exportStar =
+        (this && this.__exportStar) ||
+        function (m, exports) {
+          for (var p in m)
+            if (
+              p !== "default" &&
+              !Object.prototype.hasOwnProperty.call(exports, p)
+            )
+              __createBinding(exports, m, p);
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      /**
+       * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
+       */
+      __exportStar(__nccwpck_require__(1749), exports);
+      //# sourceMappingURL=runtime-node.js.map
 
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.setShims = exports.isFsReadStream = exports.fileFromPath = exports.getDefaultAgent = exports.getMultipartRequestOptions = exports.ReadableStream = exports.File = exports.Blob = exports.FormData = exports.Headers = exports.Response = exports.Request = exports.fetch = exports.kind = exports.auto = void 0;
-exports.auto = false;
-exports.kind = undefined;
-exports.fetch = undefined;
-exports.Request = undefined;
-exports.Response = undefined;
-exports.Headers = undefined;
-exports.FormData = undefined;
-exports.Blob = undefined;
-exports.File = undefined;
-exports.ReadableStream = undefined;
-exports.getMultipartRequestOptions = undefined;
-exports.getDefaultAgent = undefined;
-exports.fileFromPath = undefined;
-exports.isFsReadStream = undefined;
-function setShims(shims, options = { auto: false }) {
-    if (exports.auto) {
-        throw new Error(`you must \`import 'openai/shims/${shims.kind}'\` before importing anything else from openai`);
-    }
-    if (exports.kind) {
-        throw new Error(`can't \`import 'openai/shims/${shims.kind}'\` after \`import 'openai/shims/${exports.kind}'\``);
-    }
-    exports.auto = options.auto;
-    exports.kind = shims.kind;
-    exports.fetch = shims.fetch;
-    exports.Request = shims.Request;
-    exports.Response = shims.Response;
-    exports.Headers = shims.Headers;
-    exports.FormData = shims.FormData;
-    exports.Blob = shims.Blob;
-    exports.File = shims.File;
-    exports.ReadableStream = shims.ReadableStream;
-    exports.getMultipartRequestOptions = shims.getMultipartRequestOptions;
-    exports.getDefaultAgent = shims.getDefaultAgent;
-    exports.fileFromPath = shims.fileFromPath;
-    exports.isFsReadStream = shims.isFsReadStream;
-}
-exports.setShims = setShims;
-//# sourceMappingURL=registry.js.map
+      /***/
+    },
 
-/***/ }),
+    /***/ 6678: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      /**
+       * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
+       */
+      const shims = __nccwpck_require__(4437);
+      const auto = __nccwpck_require__(3506);
+      if (!shims.kind) shims.setShims(auto.getRuntime(), { auto: true });
+      for (const property of Object.keys(shims)) {
+        Object.defineProperty(exports, property, {
+          get() {
+            return shims[property];
+          },
+        });
+      }
 
-/***/ 1798:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+      /***/
+    },
 
-"use strict";
+    /***/ 1749: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
-    if (kind === "m") throw new TypeError("Private method is not writable");
-    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
-    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
-    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
-};
-var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
-    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
-    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
-    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
-};
-var _AbstractPage_client;
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.toBase64 = exports.getRequiredHeader = exports.isHeadersProtocol = exports.isRunningInBrowser = exports.debug = exports.hasOwn = exports.isEmptyObj = exports.maybeCoerceBoolean = exports.maybeCoerceFloat = exports.maybeCoerceInteger = exports.coerceBoolean = exports.coerceFloat = exports.coerceInteger = exports.readEnv = exports.ensurePresent = exports.castToError = exports.sleep = exports.safeJSON = exports.isRequestOptions = exports.createResponseHeaders = exports.PagePromise = exports.AbstractPage = exports.APIClient = exports.APIPromise = exports.createForm = exports.multipartFormRequestOptions = exports.maybeMultipartFormRequestOptions = void 0;
-const version_1 = __nccwpck_require__(6417);
-const streaming_1 = __nccwpck_require__(884);
-const error_1 = __nccwpck_require__(8905);
-const index_1 = __nccwpck_require__(6678);
-const uploads_1 = __nccwpck_require__(6800);
-var uploads_2 = __nccwpck_require__(6800);
-Object.defineProperty(exports, "maybeMultipartFormRequestOptions", ({ enumerable: true, get: function () { return uploads_2.maybeMultipartFormRequestOptions; } }));
-Object.defineProperty(exports, "multipartFormRequestOptions", ({ enumerable: true, get: function () { return uploads_2.multipartFormRequestOptions; } }));
-Object.defineProperty(exports, "createForm", ({ enumerable: true, get: function () { return uploads_2.createForm; } }));
-async function defaultParseResponse(props) {
-    const { response } = props;
-    if (props.options.stream) {
-        debug('response', response.status, response.url, response.headers, response.body);
-        // Note: there is an invariant here that isn't represented in the type system
-        // that if you set `stream: true` the response type must also be `Stream`
-        return streaming_1.Stream.fromSSEResponse(response, props.controller);
-    }
-    // fetch refuses to read the body when the status code is 204.
-    if (response.status === 204) {
-        return null;
-    }
-    if (props.options.__binaryResponse) {
-        return response;
-    }
-    const contentType = response.headers.get('content-type');
-    if (contentType?.includes('application/json')) {
-        const json = await response.json();
-        debug('response', response.status, response.url, response.headers, json);
-        return json;
-    }
-    const text = await response.text();
-    debug('response', response.status, response.url, response.headers, text);
-    // TODO handle blob, arraybuffer, other content types, etc.
-    return text;
-}
-/**
- * A subclass of `Promise` providing additional helper methods
- * for interacting with the SDK.
- */
-class APIPromise extends Promise {
-    constructor(responsePromise, parseResponse = defaultParseResponse) {
-        super((resolve) => {
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      var __importDefault =
+        (this && this.__importDefault) ||
+        function (mod) {
+          return mod && mod.__esModule ? mod : { default: mod };
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.getRuntime = void 0;
+      /**
+       * Disclaimer: modules in _shims aren't intended to be imported by SDK users.
+       */
+      const nf = __importStar(__nccwpck_require__(467));
+      const fd = __importStar(__nccwpck_require__(880));
+      const agentkeepalive_1 = __importDefault(__nccwpck_require__(4623));
+      const abort_controller_1 = __nccwpck_require__(1659);
+      const node_fs_1 = __nccwpck_require__(7561);
+      const form_data_encoder_1 = __nccwpck_require__(8824);
+      const node_stream_1 = __nccwpck_require__(4492);
+      const MultipartBody_1 = __nccwpck_require__(4595);
+      // @ts-ignore (this package does not have proper export maps for this export)
+      const ponyfill_es2018_js_1 = __nccwpck_require__(1452);
+      let fileFromPathWarned = false;
+      async function fileFromPath(path, ...args) {
+        // this import fails in environments that don't handle export maps correctly, like old versions of Jest
+        const { fileFromPath: _fileFromPath } = await Promise.resolve().then(
+          () => __importStar(__nccwpck_require__(8735))
+        );
+        if (!fileFromPathWarned) {
+          console.warn(
+            `fileFromPath is deprecated; use fs.createReadStream(${JSON.stringify(
+              path
+            )}) instead`
+          );
+          fileFromPathWarned = true;
+        }
+        // @ts-ignore
+        return await _fileFromPath(path, ...args);
+      }
+      const defaultHttpAgent = new agentkeepalive_1.default({
+        keepAlive: true,
+        timeout: 5 * 60 * 1000,
+      });
+      const defaultHttpsAgent = new agentkeepalive_1.default.HttpsAgent({
+        keepAlive: true,
+        timeout: 5 * 60 * 1000,
+      });
+      async function getMultipartRequestOptions(form, opts) {
+        const encoder = new form_data_encoder_1.FormDataEncoder(form);
+        const readable = node_stream_1.Readable.from(encoder);
+        const body = new MultipartBody_1.MultipartBody(readable);
+        const headers = {
+          ...opts.headers,
+          ...encoder.headers,
+          "Content-Length": encoder.contentLength,
+        };
+        return { ...opts, body: body, headers };
+      }
+      function getRuntime() {
+        // Polyfill global object if needed.
+        if (typeof AbortController === "undefined") {
+          // @ts-expect-error (the types are subtly different, but compatible in practice)
+          globalThis.AbortController = abort_controller_1.AbortController;
+        }
+        return {
+          kind: "node",
+          fetch: nf.default,
+          Request: nf.Request,
+          Response: nf.Response,
+          Headers: nf.Headers,
+          FormData: fd.FormData,
+          Blob: fd.Blob,
+          File: fd.File,
+          ReadableStream: ponyfill_es2018_js_1.ReadableStream,
+          getMultipartRequestOptions,
+          getDefaultAgent: (url) =>
+            url.startsWith("https") ? defaultHttpsAgent : defaultHttpAgent,
+          fileFromPath,
+          isFsReadStream: (value) => value instanceof node_fs_1.ReadStream,
+        };
+      }
+      exports.getRuntime = getRuntime;
+      //# sourceMappingURL=node-runtime.js.map
+
+      /***/
+    },
+
+    /***/ 4437: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.setShims =
+        exports.isFsReadStream =
+        exports.fileFromPath =
+        exports.getDefaultAgent =
+        exports.getMultipartRequestOptions =
+        exports.ReadableStream =
+        exports.File =
+        exports.Blob =
+        exports.FormData =
+        exports.Headers =
+        exports.Response =
+        exports.Request =
+        exports.fetch =
+        exports.kind =
+        exports.auto =
+          void 0;
+      exports.auto = false;
+      exports.kind = undefined;
+      exports.fetch = undefined;
+      exports.Request = undefined;
+      exports.Response = undefined;
+      exports.Headers = undefined;
+      exports.FormData = undefined;
+      exports.Blob = undefined;
+      exports.File = undefined;
+      exports.ReadableStream = undefined;
+      exports.getMultipartRequestOptions = undefined;
+      exports.getDefaultAgent = undefined;
+      exports.fileFromPath = undefined;
+      exports.isFsReadStream = undefined;
+      function setShims(shims, options = { auto: false }) {
+        if (exports.auto) {
+          throw new Error(
+            `you must \`import 'openai/shims/${shims.kind}'\` before importing anything else from openai`
+          );
+        }
+        if (exports.kind) {
+          throw new Error(
+            `can't \`import 'openai/shims/${shims.kind}'\` after \`import 'openai/shims/${exports.kind}'\``
+          );
+        }
+        exports.auto = options.auto;
+        exports.kind = shims.kind;
+        exports.fetch = shims.fetch;
+        exports.Request = shims.Request;
+        exports.Response = shims.Response;
+        exports.Headers = shims.Headers;
+        exports.FormData = shims.FormData;
+        exports.Blob = shims.Blob;
+        exports.File = shims.File;
+        exports.ReadableStream = shims.ReadableStream;
+        exports.getMultipartRequestOptions = shims.getMultipartRequestOptions;
+        exports.getDefaultAgent = shims.getDefaultAgent;
+        exports.fileFromPath = shims.fileFromPath;
+        exports.isFsReadStream = shims.isFsReadStream;
+      }
+      exports.setShims = setShims;
+      //# sourceMappingURL=registry.js.map
+
+      /***/
+    },
+
+    /***/ 1798: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
+
+      var __classPrivateFieldSet =
+        (this && this.__classPrivateFieldSet) ||
+        function (receiver, state, value, kind, f) {
+          if (kind === "m")
+            throw new TypeError("Private method is not writable");
+          if (kind === "a" && !f)
+            throw new TypeError(
+              "Private accessor was defined without a setter"
+            );
+          if (
+            typeof state === "function"
+              ? receiver !== state || !f
+              : !state.has(receiver)
+          )
+            throw new TypeError(
+              "Cannot write private member to an object whose class did not declare it"
+            );
+          return (
+            kind === "a"
+              ? f.call(receiver, value)
+              : f
+              ? (f.value = value)
+              : state.set(receiver, value),
+            value
+          );
+        };
+      var __classPrivateFieldGet =
+        (this && this.__classPrivateFieldGet) ||
+        function (receiver, state, kind, f) {
+          if (kind === "a" && !f)
+            throw new TypeError(
+              "Private accessor was defined without a getter"
+            );
+          if (
+            typeof state === "function"
+              ? receiver !== state || !f
+              : !state.has(receiver)
+          )
+            throw new TypeError(
+              "Cannot read private member from an object whose class did not declare it"
+            );
+          return kind === "m"
+            ? f
+            : kind === "a"
+            ? f.call(receiver)
+            : f
+            ? f.value
+            : state.get(receiver);
+        };
+      var _AbstractPage_client;
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.toBase64 =
+        exports.getRequiredHeader =
+        exports.isHeadersProtocol =
+        exports.isRunningInBrowser =
+        exports.debug =
+        exports.hasOwn =
+        exports.isEmptyObj =
+        exports.maybeCoerceBoolean =
+        exports.maybeCoerceFloat =
+        exports.maybeCoerceInteger =
+        exports.coerceBoolean =
+        exports.coerceFloat =
+        exports.coerceInteger =
+        exports.readEnv =
+        exports.ensurePresent =
+        exports.castToError =
+        exports.sleep =
+        exports.safeJSON =
+        exports.isRequestOptions =
+        exports.createResponseHeaders =
+        exports.PagePromise =
+        exports.AbstractPage =
+        exports.APIClient =
+        exports.APIPromise =
+        exports.createForm =
+        exports.multipartFormRequestOptions =
+        exports.maybeMultipartFormRequestOptions =
+          void 0;
+      const version_1 = __nccwpck_require__(6417);
+      const streaming_1 = __nccwpck_require__(884);
+      const error_1 = __nccwpck_require__(8905);
+      const index_1 = __nccwpck_require__(6678);
+      const uploads_1 = __nccwpck_require__(6800);
+      var uploads_2 = __nccwpck_require__(6800);
+      Object.defineProperty(exports, "maybeMultipartFormRequestOptions", {
+        enumerable: true,
+        get: function () {
+          return uploads_2.maybeMultipartFormRequestOptions;
+        },
+      });
+      Object.defineProperty(exports, "multipartFormRequestOptions", {
+        enumerable: true,
+        get: function () {
+          return uploads_2.multipartFormRequestOptions;
+        },
+      });
+      Object.defineProperty(exports, "createForm", {
+        enumerable: true,
+        get: function () {
+          return uploads_2.createForm;
+        },
+      });
+      async function defaultParseResponse(props) {
+        const { response } = props;
+        if (props.options.stream) {
+          debug(
+            "response",
+            response.status,
+            response.url,
+            response.headers,
+            response.body
+          );
+          // Note: there is an invariant here that isn't represented in the type system
+          // that if you set `stream: true` the response type must also be `Stream`
+          return streaming_1.Stream.fromSSEResponse(response, props.controller);
+        }
+        // fetch refuses to read the body when the status code is 204.
+        if (response.status === 204) {
+          return null;
+        }
+        if (props.options.__binaryResponse) {
+          return response;
+        }
+        const contentType = response.headers.get("content-type");
+        if (contentType?.includes("application/json")) {
+          const json = await response.json();
+          debug(
+            "response",
+            response.status,
+            response.url,
+            response.headers,
+            json
+          );
+          return json;
+        }
+        const text = await response.text();
+        debug(
+          "response",
+          response.status,
+          response.url,
+          response.headers,
+          text
+        );
+        // TODO handle blob, arraybuffer, other content types, etc.
+        return text;
+      }
+      /**
+       * A subclass of `Promise` providing additional helper methods
+       * for interacting with the SDK.
+       */
+      class APIPromise extends Promise {
+        constructor(responsePromise, parseResponse = defaultParseResponse) {
+          super((resolve) => {
             // this is maybe a bit weird but this has to be a no-op to not implicitly
             // parse the response body; instead .then, .catch, .finally are overridden
             // to parse the response
             resolve(null);
-        });
-        this.responsePromise = responsePromise;
-        this.parseResponse = parseResponse;
-    }
-    _thenUnwrap(transform) {
-        return new APIPromise(this.responsePromise, async (props) => transform(await this.parseResponse(props)));
-    }
-    /**
-     * Gets the raw `Response` instance instead of parsing the response
-     * data.
-     *
-     * If you want to parse the response body but still get the `Response`
-     * instance, you can use {@link withResponse()}.
-     *
-     * 👋 Getting the wrong TypeScript type for `Response`?
-     * Try setting `"moduleResolution": "NodeNext"` if you can,
-     * or add one of these imports before your first `import … from 'openai'`:
-     * - `import 'openai/shims/node'` (if you're running on Node)
-     * - `import 'openai/shims/web'` (otherwise)
-     */
-    asResponse() {
-        return this.responsePromise.then((p) => p.response);
-    }
-    /**
-     * Gets the parsed response data and the raw `Response` instance.
-     *
-     * If you just want to get the raw `Response` instance without parsing it,
-     * you can use {@link asResponse()}.
-     *
-     *
-     * 👋 Getting the wrong TypeScript type for `Response`?
-     * Try setting `"moduleResolution": "NodeNext"` if you can,
-     * or add one of these imports before your first `import … from 'openai'`:
-     * - `import 'openai/shims/node'` (if you're running on Node)
-     * - `import 'openai/shims/web'` (otherwise)
-     */
-    async withResponse() {
-        const [data, response] = await Promise.all([this.parse(), this.asResponse()]);
-        return { data, response };
-    }
-    parse() {
-        if (!this.parsedPromise) {
-            this.parsedPromise = this.responsePromise.then(this.parseResponse);
+          });
+          this.responsePromise = responsePromise;
+          this.parseResponse = parseResponse;
         }
-        return this.parsedPromise;
-    }
-    then(onfulfilled, onrejected) {
-        return this.parse().then(onfulfilled, onrejected);
-    }
-    catch(onrejected) {
-        return this.parse().catch(onrejected);
-    }
-    finally(onfinally) {
-        return this.parse().finally(onfinally);
-    }
-}
-exports.APIPromise = APIPromise;
-class APIClient {
-    constructor({ baseURL, maxRetries = 2, timeout = 600000, // 10 minutes
-    httpAgent, fetch: overridenFetch, }) {
-        this.baseURL = baseURL;
-        this.maxRetries = validatePositiveInteger('maxRetries', maxRetries);
-        this.timeout = validatePositiveInteger('timeout', timeout);
-        this.httpAgent = httpAgent;
-        this.fetch = overridenFetch ?? index_1.fetch;
-    }
-    authHeaders(opts) {
-        return {};
-    }
-    /**
-     * Override this to add your own default headers, for example:
-     *
-     *  {
-     *    ...super.defaultHeaders(),
-     *    Authorization: 'Bearer 123',
-     *  }
-     */
-    defaultHeaders(opts) {
-        return {
-            Accept: 'application/json',
-            'Content-Type': 'application/json',
-            'User-Agent': this.getUserAgent(),
+        _thenUnwrap(transform) {
+          return new APIPromise(this.responsePromise, async (props) =>
+            transform(await this.parseResponse(props))
+          );
+        }
+        /**
+         * Gets the raw `Response` instance instead of parsing the response
+         * data.
+         *
+         * If you want to parse the response body but still get the `Response`
+         * instance, you can use {@link withResponse()}.
+         *
+         * 👋 Getting the wrong TypeScript type for `Response`?
+         * Try setting `"moduleResolution": "NodeNext"` if you can,
+         * or add one of these imports before your first `import … from 'openai'`:
+         * - `import 'openai/shims/node'` (if you're running on Node)
+         * - `import 'openai/shims/web'` (otherwise)
+         */
+        asResponse() {
+          return this.responsePromise.then((p) => p.response);
+        }
+        /**
+         * Gets the parsed response data and the raw `Response` instance.
+         *
+         * If you just want to get the raw `Response` instance without parsing it,
+         * you can use {@link asResponse()}.
+         *
+         *
+         * 👋 Getting the wrong TypeScript type for `Response`?
+         * Try setting `"moduleResolution": "NodeNext"` if you can,
+         * or add one of these imports before your first `import … from 'openai'`:
+         * - `import 'openai/shims/node'` (if you're running on Node)
+         * - `import 'openai/shims/web'` (otherwise)
+         */
+        async withResponse() {
+          const [data, response] = await Promise.all([
+            this.parse(),
+            this.asResponse(),
+          ]);
+          return { data, response };
+        }
+        parse() {
+          if (!this.parsedPromise) {
+            this.parsedPromise = this.responsePromise.then(this.parseResponse);
+          }
+          return this.parsedPromise;
+        }
+        then(onfulfilled, onrejected) {
+          return this.parse().then(onfulfilled, onrejected);
+        }
+        catch(onrejected) {
+          return this.parse().catch(onrejected);
+        }
+        finally(onfinally) {
+          return this.parse().finally(onfinally);
+        }
+      }
+      exports.APIPromise = APIPromise;
+      class APIClient {
+        constructor({
+          baseURL,
+          maxRetries = 2,
+          timeout = 600000, // 10 minutes
+          httpAgent,
+          fetch: overridenFetch,
+        }) {
+          this.baseURL = baseURL;
+          this.maxRetries = validatePositiveInteger("maxRetries", maxRetries);
+          this.timeout = validatePositiveInteger("timeout", timeout);
+          this.httpAgent = httpAgent;
+          this.fetch = overridenFetch ?? index_1.fetch;
+        }
+        authHeaders(opts) {
+          return {};
+        }
+        /**
+         * Override this to add your own default headers, for example:
+         *
+         *  {
+         *    ...super.defaultHeaders(),
+         *    Authorization: 'Bearer 123',
+         *  }
+         */
+        defaultHeaders(opts) {
+          return {
+            Accept: "application/json",
+            "Content-Type": "application/json",
+            "User-Agent": this.getUserAgent(),
             ...getPlatformHeaders(),
             ...this.authHeaders(opts),
-        };
-    }
-    /**
-     * Override this to add your own headers validation:
-     */
-    validateHeaders(headers, customHeaders) { }
-    defaultIdempotencyKey() {
-        return `stainless-node-retry-${uuid4()}`;
-    }
-    get(path, opts) {
-        return this.methodRequest('get', path, opts);
-    }
-    post(path, opts) {
-        return this.methodRequest('post', path, opts);
-    }
-    patch(path, opts) {
-        return this.methodRequest('patch', path, opts);
-    }
-    put(path, opts) {
-        return this.methodRequest('put', path, opts);
-    }
-    delete(path, opts) {
-        return this.methodRequest('delete', path, opts);
-    }
-    methodRequest(method, path, opts) {
-        return this.request(Promise.resolve(opts).then((opts) => ({ method, path, ...opts })));
-    }
-    getAPIList(path, Page, opts) {
-        return this.requestAPIList(Page, { method: 'get', path, ...opts });
-    }
-    calculateContentLength(body) {
-        if (typeof body === 'string') {
-            if (typeof Buffer !== 'undefined') {
-                return Buffer.byteLength(body, 'utf8').toString();
-            }
-            if (typeof TextEncoder !== 'undefined') {
-                const encoder = new TextEncoder();
-                const encoded = encoder.encode(body);
-                return encoded.length.toString();
-            }
+          };
         }
-        return null;
-    }
-    buildRequest(options) {
-        const { method, path, query, headers: headers = {} } = options;
-        const body = (0, uploads_1.isMultipartBody)(options.body) ? options.body.body
-            : options.body ? JSON.stringify(options.body, null, 2)
-                : null;
-        const contentLength = this.calculateContentLength(body);
-        const url = this.buildURL(path, query);
-        if ('timeout' in options)
-            validatePositiveInteger('timeout', options.timeout);
-        const timeout = options.timeout ?? this.timeout;
-        const httpAgent = options.httpAgent ?? this.httpAgent ?? (0, index_1.getDefaultAgent)(url);
-        const minAgentTimeout = timeout + 1000;
-        if (typeof httpAgent?.options?.timeout === 'number' &&
-            minAgentTimeout > (httpAgent.options.timeout ?? 0)) {
+        /**
+         * Override this to add your own headers validation:
+         */
+        validateHeaders(headers, customHeaders) {}
+        defaultIdempotencyKey() {
+          return `stainless-node-retry-${uuid4()}`;
+        }
+        get(path, opts) {
+          return this.methodRequest("get", path, opts);
+        }
+        post(path, opts) {
+          return this.methodRequest("post", path, opts);
+        }
+        patch(path, opts) {
+          return this.methodRequest("patch", path, opts);
+        }
+        put(path, opts) {
+          return this.methodRequest("put", path, opts);
+        }
+        delete(path, opts) {
+          return this.methodRequest("delete", path, opts);
+        }
+        methodRequest(method, path, opts) {
+          return this.request(
+            Promise.resolve(opts).then((opts) => ({ method, path, ...opts }))
+          );
+        }
+        getAPIList(path, Page, opts) {
+          return this.requestAPIList(Page, { method: "get", path, ...opts });
+        }
+        calculateContentLength(body) {
+          if (typeof body === "string") {
+            if (typeof Buffer !== "undefined") {
+              return Buffer.byteLength(body, "utf8").toString();
+            }
+            if (typeof TextEncoder !== "undefined") {
+              const encoder = new TextEncoder();
+              const encoded = encoder.encode(body);
+              return encoded.length.toString();
+            }
+          }
+          return null;
+        }
+        buildRequest(options) {
+          const { method, path, query, headers: headers = {} } = options;
+          const body = (0, uploads_1.isMultipartBody)(options.body)
+            ? options.body.body
+            : options.body
+            ? JSON.stringify(options.body, null, 2)
+            : null;
+          const contentLength = this.calculateContentLength(body);
+          const url = this.buildURL(path, query);
+          if ("timeout" in options)
+            validatePositiveInteger("timeout", options.timeout);
+          const timeout = options.timeout ?? this.timeout;
+          const httpAgent =
+            options.httpAgent ??
+            this.httpAgent ??
+            (0, index_1.getDefaultAgent)(url);
+          const minAgentTimeout = timeout + 1000;
+          if (
+            typeof httpAgent?.options?.timeout === "number" &&
+            minAgentTimeout > (httpAgent.options.timeout ?? 0)
+          ) {
             // Allow any given request to bump our agent active socket timeout.
             // This may seem strange, but leaking active sockets should be rare and not particularly problematic,
             // and without mutating agent we would need to create more of them.
             // This tradeoff optimizes for performance.
             httpAgent.options.timeout = minAgentTimeout;
-        }
-        if (this.idempotencyHeader && method !== 'get') {
+          }
+          if (this.idempotencyHeader && method !== "get") {
             if (!options.idempotencyKey)
-                options.idempotencyKey = this.defaultIdempotencyKey();
+              options.idempotencyKey = this.defaultIdempotencyKey();
             headers[this.idempotencyHeader] = options.idempotencyKey;
-        }
-        const reqHeaders = {
-            ...(contentLength && { 'Content-Length': contentLength }),
+          }
+          const reqHeaders = {
+            ...(contentLength && { "Content-Length": contentLength }),
             ...this.defaultHeaders(options),
             ...headers,
-        };
-        // let builtin fetch set the Content-Type for multipart bodies
-        if ((0, uploads_1.isMultipartBody)(options.body) && index_1.kind !== 'node') {
-            delete reqHeaders['Content-Type'];
-        }
-        // Strip any headers being explicitly omitted with null
-        Object.keys(reqHeaders).forEach((key) => reqHeaders[key] === null && delete reqHeaders[key]);
-        const req = {
+          };
+          // let builtin fetch set the Content-Type for multipart bodies
+          if (
+            (0, uploads_1.isMultipartBody)(options.body) &&
+            index_1.kind !== "node"
+          ) {
+            delete reqHeaders["Content-Type"];
+          }
+          // Strip any headers being explicitly omitted with null
+          Object.keys(reqHeaders).forEach(
+            (key) => reqHeaders[key] === null && delete reqHeaders[key]
+          );
+          const req = {
             method,
             ...(body && { body: body }),
             headers: reqHeaders,
@@ -24109,4103 +32728,5729 @@ class APIClient {
             // @ts-ignore node-fetch uses a custom AbortSignal type that is
             // not compatible with standard web types
             signal: options.signal ?? null,
-        };
-        this.validateHeaders(reqHeaders, headers);
-        return { req, url, timeout };
-    }
-    /**
-     * Used as a callback for mutating the given `RequestInit` object.
-     *
-     * This is useful for cases where you want to add certain headers based off of
-     * the request properties, e.g. `method` or `url`.
-     */
-    async prepareRequest(request, { url, options }) { }
-    parseHeaders(headers) {
-        return (!headers ? {}
-            : Symbol.iterator in headers ?
-                Object.fromEntries(Array.from(headers).map((header) => [...header]))
-                : { ...headers });
-    }
-    makeStatusError(status, error, message, headers) {
-        return error_1.APIError.generate(status, error, message, headers);
-    }
-    request(options, remainingRetries = null) {
-        return new APIPromise(this.makeRequest(options, remainingRetries));
-    }
-    async makeRequest(optionsInput, retriesRemaining) {
-        const options = await optionsInput;
-        if (retriesRemaining == null) {
+          };
+          this.validateHeaders(reqHeaders, headers);
+          return { req, url, timeout };
+        }
+        /**
+         * Used as a callback for mutating the given `RequestInit` object.
+         *
+         * This is useful for cases where you want to add certain headers based off of
+         * the request properties, e.g. `method` or `url`.
+         */
+        async prepareRequest(request, { url, options }) {}
+        parseHeaders(headers) {
+          return !headers
+            ? {}
+            : Symbol.iterator in headers
+            ? Object.fromEntries(
+                Array.from(headers).map((header) => [...header])
+              )
+            : { ...headers };
+        }
+        makeStatusError(status, error, message, headers) {
+          return error_1.APIError.generate(status, error, message, headers);
+        }
+        request(options, remainingRetries = null) {
+          return new APIPromise(this.makeRequest(options, remainingRetries));
+        }
+        async makeRequest(optionsInput, retriesRemaining) {
+          const options = await optionsInput;
+          if (retriesRemaining == null) {
             retriesRemaining = options.maxRetries ?? this.maxRetries;
-        }
-        const { req, url, timeout } = this.buildRequest(options);
-        await this.prepareRequest(req, { url, options });
-        debug('request', url, options, req.headers);
-        if (options.signal?.aborted) {
+          }
+          const { req, url, timeout } = this.buildRequest(options);
+          await this.prepareRequest(req, { url, options });
+          debug("request", url, options, req.headers);
+          if (options.signal?.aborted) {
             throw new error_1.APIUserAbortError();
-        }
-        const controller = new AbortController();
-        const response = await this.fetchWithTimeout(url, req, timeout, controller).catch(exports.castToError);
-        if (response instanceof Error) {
+          }
+          const controller = new AbortController();
+          const response = await this.fetchWithTimeout(
+            url,
+            req,
+            timeout,
+            controller
+          ).catch(exports.castToError);
+          if (response instanceof Error) {
             if (options.signal?.aborted) {
-                throw new error_1.APIUserAbortError();
+              throw new error_1.APIUserAbortError();
             }
             if (retriesRemaining) {
-                return this.retryRequest(options, retriesRemaining);
+              return this.retryRequest(options, retriesRemaining);
             }
-            if (response.name === 'AbortError') {
-                throw new error_1.APIConnectionTimeoutError();
+            if (response.name === "AbortError") {
+              throw new error_1.APIConnectionTimeoutError();
             }
             throw new error_1.APIConnectionError({ cause: response });
-        }
-        const responseHeaders = (0, exports.createResponseHeaders)(response.headers);
-        if (!response.ok) {
+          }
+          const responseHeaders = (0, exports.createResponseHeaders)(
+            response.headers
+          );
+          if (!response.ok) {
             if (retriesRemaining && this.shouldRetry(response)) {
-                return this.retryRequest(options, retriesRemaining, responseHeaders);
+              return this.retryRequest(
+                options,
+                retriesRemaining,
+                responseHeaders
+              );
             }
-            const errText = await response.text().catch((e) => (0, exports.castToError)(e).message);
+            const errText = await response
+              .text()
+              .catch((e) => (0, exports.castToError)(e).message);
             const errJSON = (0, exports.safeJSON)(errText);
             const errMessage = errJSON ? undefined : errText;
-            debug('response', response.status, url, responseHeaders, errMessage);
-            const err = this.makeStatusError(response.status, errJSON, errMessage, responseHeaders);
+            debug(
+              "response",
+              response.status,
+              url,
+              responseHeaders,
+              errMessage
+            );
+            const err = this.makeStatusError(
+              response.status,
+              errJSON,
+              errMessage,
+              responseHeaders
+            );
             throw err;
+          }
+          return { response, options, controller };
         }
-        return { response, options, controller };
-    }
-    requestAPIList(Page, options) {
-        const request = this.makeRequest(options, null);
-        return new PagePromise(this, request, Page);
-    }
-    buildURL(path, query) {
-        const url = isAbsoluteURL(path) ?
-            new URL(path)
-            : new URL(this.baseURL + (this.baseURL.endsWith('/') && path.startsWith('/') ? path.slice(1) : path));
-        const defaultQuery = this.defaultQuery();
-        if (!isEmptyObj(defaultQuery)) {
+        requestAPIList(Page, options) {
+          const request = this.makeRequest(options, null);
+          return new PagePromise(this, request, Page);
+        }
+        buildURL(path, query) {
+          const url = isAbsoluteURL(path)
+            ? new URL(path)
+            : new URL(
+                this.baseURL +
+                  (this.baseURL.endsWith("/") && path.startsWith("/")
+                    ? path.slice(1)
+                    : path)
+              );
+          const defaultQuery = this.defaultQuery();
+          if (!isEmptyObj(defaultQuery)) {
             query = { ...defaultQuery, ...query };
-        }
-        if (query) {
+          }
+          if (query) {
             url.search = this.stringifyQuery(query);
+          }
+          return url.toString();
         }
-        return url.toString();
-    }
-    stringifyQuery(query) {
-        return Object.entries(query)
-            .filter(([_, value]) => typeof value !== 'undefined')
+        stringifyQuery(query) {
+          return Object.entries(query)
+            .filter(([_, value]) => typeof value !== "undefined")
             .map(([key, value]) => {
-            if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
-                return `${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
-            }
-            if (value === null) {
+              if (
+                typeof value === "string" ||
+                typeof value === "number" ||
+                typeof value === "boolean"
+              ) {
+                return `${encodeURIComponent(key)}=${encodeURIComponent(
+                  value
+                )}`;
+              }
+              if (value === null) {
                 return `${encodeURIComponent(key)}=`;
-            }
-            throw new error_1.OpenAIError(`Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`);
-        })
-            .join('&');
-    }
-    async fetchWithTimeout(url, init, ms, controller) {
-        const { signal, ...options } = init || {};
-        if (signal)
-            signal.addEventListener('abort', () => controller.abort());
-        const timeout = setTimeout(() => controller.abort(), ms);
-        return (this.getRequestClient()
-            // use undefined this binding; fetch errors if bound to something else in browser/cloudflare
-            .fetch.call(undefined, url, { signal: controller.signal, ...options })
-            .finally(() => {
-            clearTimeout(timeout);
-        }));
-    }
-    getRequestClient() {
-        return { fetch: this.fetch };
-    }
-    shouldRetry(response) {
-        // Note this is not a standard header.
-        const shouldRetryHeader = response.headers.get('x-should-retry');
-        // If the server explicitly says whether or not to retry, obey.
-        if (shouldRetryHeader === 'true')
-            return true;
-        if (shouldRetryHeader === 'false')
-            return false;
-        // Retry on request timeouts.
-        if (response.status === 408)
-            return true;
-        // Retry on lock timeouts.
-        if (response.status === 409)
-            return true;
-        // Retry on rate limits.
-        if (response.status === 429)
-            return true;
-        // Retry internal errors.
-        if (response.status >= 500)
-            return true;
-        return false;
-    }
-    async retryRequest(options, retriesRemaining, responseHeaders) {
-        // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
-        let timeoutMillis;
-        const retryAfterHeader = responseHeaders?.['retry-after'];
-        if (retryAfterHeader) {
+              }
+              throw new error_1.OpenAIError(
+                `Cannot stringify type ${typeof value}; Expected string, number, boolean, or null. If you need to pass nested query parameters, you can manually encode them, e.g. { query: { 'foo[key1]': value1, 'foo[key2]': value2 } }, and please open a GitHub issue requesting better support for your use case.`
+              );
+            })
+            .join("&");
+        }
+        async fetchWithTimeout(url, init, ms, controller) {
+          const { signal, ...options } = init || {};
+          if (signal)
+            signal.addEventListener("abort", () => controller.abort());
+          const timeout = setTimeout(() => controller.abort(), ms);
+          return (
+            this.getRequestClient()
+              // use undefined this binding; fetch errors if bound to something else in browser/cloudflare
+              .fetch.call(undefined, url, {
+                signal: controller.signal,
+                ...options,
+              })
+              .finally(() => {
+                clearTimeout(timeout);
+              })
+          );
+        }
+        getRequestClient() {
+          return { fetch: this.fetch };
+        }
+        shouldRetry(response) {
+          // Note this is not a standard header.
+          const shouldRetryHeader = response.headers.get("x-should-retry");
+          // If the server explicitly says whether or not to retry, obey.
+          if (shouldRetryHeader === "true") return true;
+          if (shouldRetryHeader === "false") return false;
+          // Retry on request timeouts.
+          if (response.status === 408) return true;
+          // Retry on lock timeouts.
+          if (response.status === 409) return true;
+          // Retry on rate limits.
+          if (response.status === 429) return true;
+          // Retry internal errors.
+          if (response.status >= 500) return true;
+          return false;
+        }
+        async retryRequest(options, retriesRemaining, responseHeaders) {
+          // About the Retry-After header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After
+          let timeoutMillis;
+          const retryAfterHeader = responseHeaders?.["retry-after"];
+          if (retryAfterHeader) {
             const timeoutSeconds = parseInt(retryAfterHeader);
             if (!Number.isNaN(timeoutSeconds)) {
-                timeoutMillis = timeoutSeconds * 1000;
+              timeoutMillis = timeoutSeconds * 1000;
+            } else {
+              timeoutMillis = Date.parse(retryAfterHeader) - Date.now();
             }
-            else {
-                timeoutMillis = Date.parse(retryAfterHeader) - Date.now();
-            }
-        }
-        // If the API asks us to wait a certain amount of time (and it's a reasonable amount),
-        // just do what it says, but otherwise calculate a default
-        if (!timeoutMillis ||
+          }
+          // If the API asks us to wait a certain amount of time (and it's a reasonable amount),
+          // just do what it says, but otherwise calculate a default
+          if (
+            !timeoutMillis ||
             !Number.isInteger(timeoutMillis) ||
             timeoutMillis <= 0 ||
-            timeoutMillis > 60 * 1000) {
+            timeoutMillis > 60 * 1000
+          ) {
             const maxRetries = options.maxRetries ?? this.maxRetries;
-            timeoutMillis = this.calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries);
+            timeoutMillis = this.calculateDefaultRetryTimeoutMillis(
+              retriesRemaining,
+              maxRetries
+            );
+          }
+          await (0, exports.sleep)(timeoutMillis);
+          return this.makeRequest(options, retriesRemaining - 1);
         }
-        await (0, exports.sleep)(timeoutMillis);
-        return this.makeRequest(options, retriesRemaining - 1);
-    }
-    calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {
-        const initialRetryDelay = 0.5;
-        const maxRetryDelay = 8.0;
-        const numRetries = maxRetries - retriesRemaining;
-        // Apply exponential backoff, but not more than the max.
-        const sleepSeconds = Math.min(initialRetryDelay * Math.pow(2, numRetries), maxRetryDelay);
-        // Apply some jitter, take up to at most 25 percent of the retry time.
-        const jitter = 1 - Math.random() * 0.25;
-        return sleepSeconds * jitter * 1000;
-    }
-    getUserAgent() {
-        return `${this.constructor.name}/JS ${version_1.VERSION}`;
-    }
-}
-exports.APIClient = APIClient;
-class AbstractPage {
-    constructor(client, response, body, options) {
-        _AbstractPage_client.set(this, void 0);
-        __classPrivateFieldSet(this, _AbstractPage_client, client, "f");
-        this.options = options;
-        this.response = response;
-        this.body = body;
-    }
-    hasNextPage() {
-        const items = this.getPaginatedItems();
-        if (!items.length)
-            return false;
-        return this.nextPageInfo() != null;
-    }
-    async getNextPage() {
-        const nextInfo = this.nextPageInfo();
-        if (!nextInfo) {
-            throw new error_1.OpenAIError('No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.');
+        calculateDefaultRetryTimeoutMillis(retriesRemaining, maxRetries) {
+          const initialRetryDelay = 0.5;
+          const maxRetryDelay = 8.0;
+          const numRetries = maxRetries - retriesRemaining;
+          // Apply exponential backoff, but not more than the max.
+          const sleepSeconds = Math.min(
+            initialRetryDelay * Math.pow(2, numRetries),
+            maxRetryDelay
+          );
+          // Apply some jitter, take up to at most 25 percent of the retry time.
+          const jitter = 1 - Math.random() * 0.25;
+          return sleepSeconds * jitter * 1000;
         }
-        const nextOptions = { ...this.options };
-        if ('params' in nextInfo) {
+        getUserAgent() {
+          return `${this.constructor.name}/JS ${version_1.VERSION}`;
+        }
+      }
+      exports.APIClient = APIClient;
+      class AbstractPage {
+        constructor(client, response, body, options) {
+          _AbstractPage_client.set(this, void 0);
+          __classPrivateFieldSet(this, _AbstractPage_client, client, "f");
+          this.options = options;
+          this.response = response;
+          this.body = body;
+        }
+        hasNextPage() {
+          const items = this.getPaginatedItems();
+          if (!items.length) return false;
+          return this.nextPageInfo() != null;
+        }
+        async getNextPage() {
+          const nextInfo = this.nextPageInfo();
+          if (!nextInfo) {
+            throw new error_1.OpenAIError(
+              "No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`."
+            );
+          }
+          const nextOptions = { ...this.options };
+          if ("params" in nextInfo) {
             nextOptions.query = { ...nextOptions.query, ...nextInfo.params };
-        }
-        else if ('url' in nextInfo) {
-            const params = [...Object.entries(nextOptions.query || {}), ...nextInfo.url.searchParams.entries()];
+          } else if ("url" in nextInfo) {
+            const params = [
+              ...Object.entries(nextOptions.query || {}),
+              ...nextInfo.url.searchParams.entries(),
+            ];
             for (const [key, value] of params) {
-                nextInfo.url.searchParams.set(key, value);
+              nextInfo.url.searchParams.set(key, value);
             }
             nextOptions.query = undefined;
             nextOptions.path = nextInfo.url.toString();
+          }
+          return await __classPrivateFieldGet(
+            this,
+            _AbstractPage_client,
+            "f"
+          ).requestAPIList(this.constructor, nextOptions);
         }
-        return await __classPrivateFieldGet(this, _AbstractPage_client, "f").requestAPIList(this.constructor, nextOptions);
-    }
-    async *iterPages() {
-        // eslint-disable-next-line @typescript-eslint/no-this-alias
-        let page = this;
-        yield page;
-        while (page.hasNextPage()) {
+        async *iterPages() {
+          // eslint-disable-next-line @typescript-eslint/no-this-alias
+          let page = this;
+          yield page;
+          while (page.hasNextPage()) {
             page = await page.getNextPage();
             yield page;
+          }
         }
-    }
-    async *[(_AbstractPage_client = new WeakMap(), Symbol.asyncIterator)]() {
-        for await (const page of this.iterPages()) {
+        async *[((_AbstractPage_client = new WeakMap()),
+        Symbol.asyncIterator)]() {
+          for await (const page of this.iterPages()) {
             for (const item of page.getPaginatedItems()) {
-                yield item;
+              yield item;
             }
+          }
         }
-    }
-}
-exports.AbstractPage = AbstractPage;
-/**
- * This subclass of Promise will resolve to an instantiated Page once the request completes.
- *
- * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:
- *
- *    for await (const item of client.items.list()) {
- *      console.log(item)
- *    }
- */
-class PagePromise extends APIPromise {
-    constructor(client, request, Page) {
-        super(request, async (props) => new Page(client, props.response, await defaultParseResponse(props), props.options));
-    }
-    /**
-     * Allow auto-paginating iteration on an unawaited list call, eg:
-     *
-     *    for await (const item of client.items.list()) {
-     *      console.log(item)
-     *    }
-     */
-    async *[Symbol.asyncIterator]() {
-        const page = await this;
-        for await (const item of page) {
+      }
+      exports.AbstractPage = AbstractPage;
+      /**
+       * This subclass of Promise will resolve to an instantiated Page once the request completes.
+       *
+       * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:
+       *
+       *    for await (const item of client.items.list()) {
+       *      console.log(item)
+       *    }
+       */
+      class PagePromise extends APIPromise {
+        constructor(client, request, Page) {
+          super(
+            request,
+            async (props) =>
+              new Page(
+                client,
+                props.response,
+                await defaultParseResponse(props),
+                props.options
+              )
+          );
+        }
+        /**
+         * Allow auto-paginating iteration on an unawaited list call, eg:
+         *
+         *    for await (const item of client.items.list()) {
+         *      console.log(item)
+         *    }
+         */
+        async *[Symbol.asyncIterator]() {
+          const page = await this;
+          for await (const item of page) {
             yield item;
+          }
         }
-    }
-}
-exports.PagePromise = PagePromise;
-const createResponseHeaders = (headers) => {
-    return new Proxy(Object.fromEntries(
-    // @ts-ignore
-    headers.entries()), {
-        get(target, name) {
-            const key = name.toString();
-            return target[key.toLowerCase()] || target[key];
-        },
-    });
-};
-exports.createResponseHeaders = createResponseHeaders;
-// This is required so that we can determine if a given object matches the RequestOptions
-// type at runtime. While this requires duplication, it is enforced by the TypeScript
-// compiler such that any missing / extraneous keys will cause an error.
-const requestOptionsKeys = {
-    method: true,
-    path: true,
-    query: true,
-    body: true,
-    headers: true,
-    maxRetries: true,
-    stream: true,
-    timeout: true,
-    httpAgent: true,
-    signal: true,
-    idempotencyKey: true,
-    __binaryResponse: true,
-};
-const isRequestOptions = (obj) => {
-    return (typeof obj === 'object' &&
-        obj !== null &&
-        !isEmptyObj(obj) &&
-        Object.keys(obj).every((k) => hasOwn(requestOptionsKeys, k)));
-};
-exports.isRequestOptions = isRequestOptions;
-const getPlatformProperties = () => {
-    if (typeof Deno !== 'undefined' && Deno.build != null) {
+      }
+      exports.PagePromise = PagePromise;
+      const createResponseHeaders = (headers) => {
+        return new Proxy(
+          Object.fromEntries(
+            // @ts-ignore
+            headers.entries()
+          ),
+          {
+            get(target, name) {
+              const key = name.toString();
+              return target[key.toLowerCase()] || target[key];
+            },
+          }
+        );
+      };
+      exports.createResponseHeaders = createResponseHeaders;
+      // This is required so that we can determine if a given object matches the RequestOptions
+      // type at runtime. While this requires duplication, it is enforced by the TypeScript
+      // compiler such that any missing / extraneous keys will cause an error.
+      const requestOptionsKeys = {
+        method: true,
+        path: true,
+        query: true,
+        body: true,
+        headers: true,
+        maxRetries: true,
+        stream: true,
+        timeout: true,
+        httpAgent: true,
+        signal: true,
+        idempotencyKey: true,
+        __binaryResponse: true,
+      };
+      const isRequestOptions = (obj) => {
+        return (
+          typeof obj === "object" &&
+          obj !== null &&
+          !isEmptyObj(obj) &&
+          Object.keys(obj).every((k) => hasOwn(requestOptionsKeys, k))
+        );
+      };
+      exports.isRequestOptions = isRequestOptions;
+      const getPlatformProperties = () => {
+        if (typeof Deno !== "undefined" && Deno.build != null) {
+          return {
+            "X-Stainless-Lang": "js",
+            "X-Stainless-Package-Version": version_1.VERSION,
+            "X-Stainless-OS": normalizePlatform(Deno.build.os),
+            "X-Stainless-Arch": normalizeArch(Deno.build.arch),
+            "X-Stainless-Runtime": "deno",
+            "X-Stainless-Runtime-Version": Deno.version,
+          };
+        }
+        if (typeof EdgeRuntime !== "undefined") {
+          return {
+            "X-Stainless-Lang": "js",
+            "X-Stainless-Package-Version": version_1.VERSION,
+            "X-Stainless-OS": "Unknown",
+            "X-Stainless-Arch": `other:${EdgeRuntime}`,
+            "X-Stainless-Runtime": "edge",
+            "X-Stainless-Runtime-Version": process.version,
+          };
+        }
+        // Check if Node.js
+        if (
+          Object.prototype.toString.call(
+            typeof process !== "undefined" ? process : 0
+          ) === "[object process]"
+        ) {
+          return {
+            "X-Stainless-Lang": "js",
+            "X-Stainless-Package-Version": version_1.VERSION,
+            "X-Stainless-OS": normalizePlatform(process.platform),
+            "X-Stainless-Arch": normalizeArch(process.arch),
+            "X-Stainless-Runtime": "node",
+            "X-Stainless-Runtime-Version": process.version,
+          };
+        }
+        const browserInfo = getBrowserInfo();
+        if (browserInfo) {
+          return {
+            "X-Stainless-Lang": "js",
+            "X-Stainless-Package-Version": version_1.VERSION,
+            "X-Stainless-OS": "Unknown",
+            "X-Stainless-Arch": "unknown",
+            "X-Stainless-Runtime": `browser:${browserInfo.browser}`,
+            "X-Stainless-Runtime-Version": browserInfo.version,
+          };
+        }
+        // TODO add support for Cloudflare workers, etc.
         return {
-            'X-Stainless-Lang': 'js',
-            'X-Stainless-Package-Version': version_1.VERSION,
-            'X-Stainless-OS': normalizePlatform(Deno.build.os),
-            'X-Stainless-Arch': normalizeArch(Deno.build.arch),
-            'X-Stainless-Runtime': 'deno',
-            'X-Stainless-Runtime-Version': Deno.version,
+          "X-Stainless-Lang": "js",
+          "X-Stainless-Package-Version": version_1.VERSION,
+          "X-Stainless-OS": "Unknown",
+          "X-Stainless-Arch": "unknown",
+          "X-Stainless-Runtime": "unknown",
+          "X-Stainless-Runtime-Version": "unknown",
         };
-    }
-    if (typeof EdgeRuntime !== 'undefined') {
-        return {
-            'X-Stainless-Lang': 'js',
-            'X-Stainless-Package-Version': version_1.VERSION,
-            'X-Stainless-OS': 'Unknown',
-            'X-Stainless-Arch': `other:${EdgeRuntime}`,
-            'X-Stainless-Runtime': 'edge',
-            'X-Stainless-Runtime-Version': process.version,
-        };
-    }
-    // Check if Node.js
-    if (Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]') {
-        return {
-            'X-Stainless-Lang': 'js',
-            'X-Stainless-Package-Version': version_1.VERSION,
-            'X-Stainless-OS': normalizePlatform(process.platform),
-            'X-Stainless-Arch': normalizeArch(process.arch),
-            'X-Stainless-Runtime': 'node',
-            'X-Stainless-Runtime-Version': process.version,
-        };
-    }
-    const browserInfo = getBrowserInfo();
-    if (browserInfo) {
-        return {
-            'X-Stainless-Lang': 'js',
-            'X-Stainless-Package-Version': version_1.VERSION,
-            'X-Stainless-OS': 'Unknown',
-            'X-Stainless-Arch': 'unknown',
-            'X-Stainless-Runtime': `browser:${browserInfo.browser}`,
-            'X-Stainless-Runtime-Version': browserInfo.version,
-        };
-    }
-    // TODO add support for Cloudflare workers, etc.
-    return {
-        'X-Stainless-Lang': 'js',
-        'X-Stainless-Package-Version': version_1.VERSION,
-        'X-Stainless-OS': 'Unknown',
-        'X-Stainless-Arch': 'unknown',
-        'X-Stainless-Runtime': 'unknown',
-        'X-Stainless-Runtime-Version': 'unknown',
-    };
-};
-// Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts
-function getBrowserInfo() {
-    if (typeof navigator === 'undefined' || !navigator) {
-        return null;
-    }
-    // NOTE: The order matters here!
-    const browserPatterns = [
-        { key: 'edge', pattern: /Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/ },
-        { key: 'ie', pattern: /MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/ },
-        { key: 'ie', pattern: /Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/ },
-        { key: 'chrome', pattern: /Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/ },
-        { key: 'firefox', pattern: /Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/ },
-        { key: 'safari', pattern: /(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/ },
-    ];
-    // Find the FIRST matching browser
-    for (const { key, pattern } of browserPatterns) {
-        const match = pattern.exec(navigator.userAgent);
-        if (match) {
+      };
+      // Note: modified from https://github.com/JS-DevTools/host-environment/blob/b1ab79ecde37db5d6e163c050e54fe7d287d7c92/src/isomorphic.browser.ts
+      function getBrowserInfo() {
+        if (typeof navigator === "undefined" || !navigator) {
+          return null;
+        }
+        // NOTE: The order matters here!
+        const browserPatterns = [
+          { key: "edge", pattern: /Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/ },
+          { key: "ie", pattern: /MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/ },
+          { key: "ie", pattern: /Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/ },
+          { key: "chrome", pattern: /Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/ },
+          {
+            key: "firefox",
+            pattern: /Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/,
+          },
+          {
+            key: "safari",
+            pattern:
+              /(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/,
+          },
+        ];
+        // Find the FIRST matching browser
+        for (const { key, pattern } of browserPatterns) {
+          const match = pattern.exec(navigator.userAgent);
+          if (match) {
             const major = match[1] || 0;
             const minor = match[2] || 0;
             const patch = match[3] || 0;
             return { browser: key, version: `${major}.${minor}.${patch}` };
+          }
         }
-    }
-    return null;
-}
-const normalizeArch = (arch) => {
-    // Node docs:
-    // - https://nodejs.org/api/process.html#processarch
-    // Deno docs:
-    // - https://doc.deno.land/deno/stable/~/Deno.build
-    if (arch === 'x32')
-        return 'x32';
-    if (arch === 'x86_64' || arch === 'x64')
-        return 'x64';
-    if (arch === 'arm')
-        return 'arm';
-    if (arch === 'aarch64' || arch === 'arm64')
-        return 'arm64';
-    if (arch)
-        return `other:${arch}`;
-    return 'unknown';
-};
-const normalizePlatform = (platform) => {
-    // Node platforms:
-    // - https://nodejs.org/api/process.html#processplatform
-    // Deno platforms:
-    // - https://doc.deno.land/deno/stable/~/Deno.build
-    // - https://github.com/denoland/deno/issues/14799
-    platform = platform.toLowerCase();
-    // NOTE: this iOS check is untested and may not work
-    // Node does not work natively on IOS, there is a fork at
-    // https://github.com/nodejs-mobile/nodejs-mobile
-    // however it is unknown at the time of writing how to detect if it is running
-    if (platform.includes('ios'))
-        return 'iOS';
-    if (platform === 'android')
-        return 'Android';
-    if (platform === 'darwin')
-        return 'MacOS';
-    if (platform === 'win32')
-        return 'Windows';
-    if (platform === 'freebsd')
-        return 'FreeBSD';
-    if (platform === 'openbsd')
-        return 'OpenBSD';
-    if (platform === 'linux')
-        return 'Linux';
-    if (platform)
-        return `Other:${platform}`;
-    return 'Unknown';
-};
-let _platformHeaders;
-const getPlatformHeaders = () => {
-    return (_platformHeaders ?? (_platformHeaders = getPlatformProperties()));
-};
-const safeJSON = (text) => {
-    try {
-        return JSON.parse(text);
-    }
-    catch (err) {
-        return undefined;
-    }
-};
-exports.safeJSON = safeJSON;
-// https://stackoverflow.com/a/19709846
-const startsWithSchemeRegexp = new RegExp('^(?:[a-z]+:)?//', 'i');
-const isAbsoluteURL = (url) => {
-    return startsWithSchemeRegexp.test(url);
-};
-const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
-exports.sleep = sleep;
-const validatePositiveInteger = (name, n) => {
-    if (typeof n !== 'number' || !Number.isInteger(n)) {
-        throw new error_1.OpenAIError(`${name} must be an integer`);
-    }
-    if (n < 0) {
-        throw new error_1.OpenAIError(`${name} must be a positive integer`);
-    }
-    return n;
-};
-const castToError = (err) => {
-    if (err instanceof Error)
-        return err;
-    return new Error(err);
-};
-exports.castToError = castToError;
-const ensurePresent = (value) => {
-    if (value == null)
-        throw new error_1.OpenAIError(`Expected a value to be given but received ${value} instead.`);
-    return value;
-};
-exports.ensurePresent = ensurePresent;
-/**
- * Read an environment variable.
- *
- * Will return undefined if the environment variable doesn't exist or cannot be accessed.
- */
-const readEnv = (env) => {
-    if (typeof process !== 'undefined') {
-        return process.env?.[env] ?? undefined;
-    }
-    if (typeof Deno !== 'undefined') {
-        return Deno.env?.get?.(env);
-    }
-    return undefined;
-};
-exports.readEnv = readEnv;
-const coerceInteger = (value) => {
-    if (typeof value === 'number')
-        return Math.round(value);
-    if (typeof value === 'string')
-        return parseInt(value, 10);
-    throw new error_1.OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
-};
-exports.coerceInteger = coerceInteger;
-const coerceFloat = (value) => {
-    if (typeof value === 'number')
+        return null;
+      }
+      const normalizeArch = (arch) => {
+        // Node docs:
+        // - https://nodejs.org/api/process.html#processarch
+        // Deno docs:
+        // - https://doc.deno.land/deno/stable/~/Deno.build
+        if (arch === "x32") return "x32";
+        if (arch === "x86_64" || arch === "x64") return "x64";
+        if (arch === "arm") return "arm";
+        if (arch === "aarch64" || arch === "arm64") return "arm64";
+        if (arch) return `other:${arch}`;
+        return "unknown";
+      };
+      const normalizePlatform = (platform) => {
+        // Node platforms:
+        // - https://nodejs.org/api/process.html#processplatform
+        // Deno platforms:
+        // - https://doc.deno.land/deno/stable/~/Deno.build
+        // - https://github.com/denoland/deno/issues/14799
+        platform = platform.toLowerCase();
+        // NOTE: this iOS check is untested and may not work
+        // Node does not work natively on IOS, there is a fork at
+        // https://github.com/nodejs-mobile/nodejs-mobile
+        // however it is unknown at the time of writing how to detect if it is running
+        if (platform.includes("ios")) return "iOS";
+        if (platform === "android") return "Android";
+        if (platform === "darwin") return "MacOS";
+        if (platform === "win32") return "Windows";
+        if (platform === "freebsd") return "FreeBSD";
+        if (platform === "openbsd") return "OpenBSD";
+        if (platform === "linux") return "Linux";
+        if (platform) return `Other:${platform}`;
+        return "Unknown";
+      };
+      let _platformHeaders;
+      const getPlatformHeaders = () => {
+        return _platformHeaders ?? (_platformHeaders = getPlatformProperties());
+      };
+      const safeJSON = (text) => {
+        try {
+          return JSON.parse(text);
+        } catch (err) {
+          return undefined;
+        }
+      };
+      exports.safeJSON = safeJSON;
+      // https://stackoverflow.com/a/19709846
+      const startsWithSchemeRegexp = new RegExp("^(?:[a-z]+:)?//", "i");
+      const isAbsoluteURL = (url) => {
+        return startsWithSchemeRegexp.test(url);
+      };
+      const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
+      exports.sleep = sleep;
+      const validatePositiveInteger = (name, n) => {
+        if (typeof n !== "number" || !Number.isInteger(n)) {
+          throw new error_1.OpenAIError(`${name} must be an integer`);
+        }
+        if (n < 0) {
+          throw new error_1.OpenAIError(`${name} must be a positive integer`);
+        }
+        return n;
+      };
+      const castToError = (err) => {
+        if (err instanceof Error) return err;
+        return new Error(err);
+      };
+      exports.castToError = castToError;
+      const ensurePresent = (value) => {
+        if (value == null)
+          throw new error_1.OpenAIError(
+            `Expected a value to be given but received ${value} instead.`
+          );
         return value;
-    if (typeof value === 'string')
-        return parseFloat(value);
-    throw new error_1.OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
-};
-exports.coerceFloat = coerceFloat;
-const coerceBoolean = (value) => {
-    if (typeof value === 'boolean')
-        return value;
-    if (typeof value === 'string')
-        return value === 'true';
-    return Boolean(value);
-};
-exports.coerceBoolean = coerceBoolean;
-const maybeCoerceInteger = (value) => {
-    if (value === undefined) {
+      };
+      exports.ensurePresent = ensurePresent;
+      /**
+       * Read an environment variable.
+       *
+       * Will return undefined if the environment variable doesn't exist or cannot be accessed.
+       */
+      const readEnv = (env) => {
+        if (typeof process !== "undefined") {
+          return process.env?.[env] ?? undefined;
+        }
+        if (typeof Deno !== "undefined") {
+          return Deno.env?.get?.(env);
+        }
         return undefined;
-    }
-    return (0, exports.coerceInteger)(value);
-};
-exports.maybeCoerceInteger = maybeCoerceInteger;
-const maybeCoerceFloat = (value) => {
-    if (value === undefined) {
-        return undefined;
-    }
-    return (0, exports.coerceFloat)(value);
-};
-exports.maybeCoerceFloat = maybeCoerceFloat;
-const maybeCoerceBoolean = (value) => {
-    if (value === undefined) {
-        return undefined;
-    }
-    return (0, exports.coerceBoolean)(value);
-};
-exports.maybeCoerceBoolean = maybeCoerceBoolean;
-// https://stackoverflow.com/a/34491287
-function isEmptyObj(obj) {
-    if (!obj)
+      };
+      exports.readEnv = readEnv;
+      const coerceInteger = (value) => {
+        if (typeof value === "number") return Math.round(value);
+        if (typeof value === "string") return parseInt(value, 10);
+        throw new error_1.OpenAIError(
+          `Could not coerce ${value} (type: ${typeof value}) into a number`
+        );
+      };
+      exports.coerceInteger = coerceInteger;
+      const coerceFloat = (value) => {
+        if (typeof value === "number") return value;
+        if (typeof value === "string") return parseFloat(value);
+        throw new error_1.OpenAIError(
+          `Could not coerce ${value} (type: ${typeof value}) into a number`
+        );
+      };
+      exports.coerceFloat = coerceFloat;
+      const coerceBoolean = (value) => {
+        if (typeof value === "boolean") return value;
+        if (typeof value === "string") return value === "true";
+        return Boolean(value);
+      };
+      exports.coerceBoolean = coerceBoolean;
+      const maybeCoerceInteger = (value) => {
+        if (value === undefined) {
+          return undefined;
+        }
+        return (0, exports.coerceInteger)(value);
+      };
+      exports.maybeCoerceInteger = maybeCoerceInteger;
+      const maybeCoerceFloat = (value) => {
+        if (value === undefined) {
+          return undefined;
+        }
+        return (0, exports.coerceFloat)(value);
+      };
+      exports.maybeCoerceFloat = maybeCoerceFloat;
+      const maybeCoerceBoolean = (value) => {
+        if (value === undefined) {
+          return undefined;
+        }
+        return (0, exports.coerceBoolean)(value);
+      };
+      exports.maybeCoerceBoolean = maybeCoerceBoolean;
+      // https://stackoverflow.com/a/34491287
+      function isEmptyObj(obj) {
+        if (!obj) return true;
+        for (const _k in obj) return false;
         return true;
-    for (const _k in obj)
-        return false;
-    return true;
-}
-exports.isEmptyObj = isEmptyObj;
-// https://eslint.org/docs/latest/rules/no-prototype-builtins
-function hasOwn(obj, key) {
-    return Object.prototype.hasOwnProperty.call(obj, key);
-}
-exports.hasOwn = hasOwn;
-function debug(action, ...args) {
-    if (typeof process !== 'undefined' && process.env['DEBUG'] === 'true') {
-        console.log(`OpenAI:DEBUG:${action}`, ...args);
-    }
-}
-exports.debug = debug;
-/**
- * https://stackoverflow.com/a/2117523
- */
-const uuid4 = () => {
-    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
-        const r = (Math.random() * 16) | 0;
-        const v = c === 'x' ? r : (r & 0x3) | 0x8;
-        return v.toString(16);
-    });
-};
-const isRunningInBrowser = () => {
-    return (
-    // @ts-ignore
-    typeof window !== 'undefined' &&
-        // @ts-ignore
-        typeof window.document !== 'undefined' &&
-        // @ts-ignore
-        typeof navigator !== 'undefined');
-};
-exports.isRunningInBrowser = isRunningInBrowser;
-const isHeadersProtocol = (headers) => {
-    return typeof headers?.get === 'function';
-};
-exports.isHeadersProtocol = isHeadersProtocol;
-const getRequiredHeader = (headers, header) => {
-    const lowerCasedHeader = header.toLowerCase();
-    if ((0, exports.isHeadersProtocol)(headers)) {
-        // to deal with the case where the header looks like Stainless-Event-Id
-        const intercapsHeader = header[0]?.toUpperCase() +
-            header.substring(1).replace(/([^\w])(\w)/g, (_m, g1, g2) => g1 + g2.toUpperCase());
-        for (const key of [header, lowerCasedHeader, header.toUpperCase(), intercapsHeader]) {
+      }
+      exports.isEmptyObj = isEmptyObj;
+      // https://eslint.org/docs/latest/rules/no-prototype-builtins
+      function hasOwn(obj, key) {
+        return Object.prototype.hasOwnProperty.call(obj, key);
+      }
+      exports.hasOwn = hasOwn;
+      function debug(action, ...args) {
+        if (typeof process !== "undefined" && process.env["DEBUG"] === "true") {
+          console.log(`OpenAI:DEBUG:${action}`, ...args);
+        }
+      }
+      exports.debug = debug;
+      /**
+       * https://stackoverflow.com/a/2117523
+       */
+      const uuid4 = () => {
+        return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
+          const r = (Math.random() * 16) | 0;
+          const v = c === "x" ? r : (r & 0x3) | 0x8;
+          return v.toString(16);
+        });
+      };
+      const isRunningInBrowser = () => {
+        return (
+          // @ts-ignore
+          typeof window !== "undefined" &&
+          // @ts-ignore
+          typeof window.document !== "undefined" &&
+          // @ts-ignore
+          typeof navigator !== "undefined"
+        );
+      };
+      exports.isRunningInBrowser = isRunningInBrowser;
+      const isHeadersProtocol = (headers) => {
+        return typeof headers?.get === "function";
+      };
+      exports.isHeadersProtocol = isHeadersProtocol;
+      const getRequiredHeader = (headers, header) => {
+        const lowerCasedHeader = header.toLowerCase();
+        if ((0, exports.isHeadersProtocol)(headers)) {
+          // to deal with the case where the header looks like Stainless-Event-Id
+          const intercapsHeader =
+            header[0]?.toUpperCase() +
+            header
+              .substring(1)
+              .replace(/([^\w])(\w)/g, (_m, g1, g2) => g1 + g2.toUpperCase());
+          for (const key of [
+            header,
+            lowerCasedHeader,
+            header.toUpperCase(),
+            intercapsHeader,
+          ]) {
             const value = headers.get(key);
             if (value) {
-                return value;
+              return value;
             }
+          }
         }
-    }
-    for (const [key, value] of Object.entries(headers)) {
-        if (key.toLowerCase() === lowerCasedHeader) {
+        for (const [key, value] of Object.entries(headers)) {
+          if (key.toLowerCase() === lowerCasedHeader) {
             if (Array.isArray(value)) {
-                if (value.length <= 1)
-                    return value[0];
-                console.warn(`Received ${value.length} entries for the ${header} header, using the first entry.`);
-                return value[0];
+              if (value.length <= 1) return value[0];
+              console.warn(
+                `Received ${value.length} entries for the ${header} header, using the first entry.`
+              );
+              return value[0];
             }
             return value;
+          }
         }
-    }
-    throw new Error(`Could not find ${header} header`);
-};
-exports.getRequiredHeader = getRequiredHeader;
-/**
- * Encodes a string to Base64 format.
- */
-const toBase64 = (str) => {
-    if (!str)
-        return '';
-    if (typeof Buffer !== 'undefined') {
-        return Buffer.from(str).toString('base64');
-    }
-    if (typeof btoa !== 'undefined') {
-        return btoa(str);
-    }
-    throw new error_1.OpenAIError('Cannot generate b64 string; Expected `Buffer` or `btoa` to be defined');
-};
-exports.toBase64 = toBase64;
-//# sourceMappingURL=core.js.map
+        throw new Error(`Could not find ${header} header`);
+      };
+      exports.getRequiredHeader = getRequiredHeader;
+      /**
+       * Encodes a string to Base64 format.
+       */
+      const toBase64 = (str) => {
+        if (!str) return "";
+        if (typeof Buffer !== "undefined") {
+          return Buffer.from(str).toString("base64");
+        }
+        if (typeof btoa !== "undefined") {
+          return btoa(str);
+        }
+        throw new error_1.OpenAIError(
+          "Cannot generate b64 string; Expected `Buffer` or `btoa` to be defined"
+        );
+      };
+      exports.toBase64 = toBase64;
+      //# sourceMappingURL=core.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 8905:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+    /***/ 8905: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
 
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.InternalServerError = exports.RateLimitError = exports.UnprocessableEntityError = exports.ConflictError = exports.NotFoundError = exports.PermissionDeniedError = exports.AuthenticationError = exports.BadRequestError = exports.APIConnectionTimeoutError = exports.APIConnectionError = exports.APIUserAbortError = exports.APIError = exports.OpenAIError = void 0;
-const core_1 = __nccwpck_require__(1798);
-class OpenAIError extends Error {
-}
-exports.OpenAIError = OpenAIError;
-class APIError extends OpenAIError {
-    constructor(status, error, message, headers) {
-        super(`${APIError.makeMessage(status, error, message)}`);
-        this.status = status;
-        this.headers = headers;
-        const data = error;
-        this.error = data;
-        this.code = data?.['code'];
-        this.param = data?.['param'];
-        this.type = data?.['type'];
-    }
-    static makeMessage(status, error, message) {
-        const msg = error?.message ?
-            typeof error.message === 'string' ? error.message
-                : JSON.stringify(error.message)
-            : error ? JSON.stringify(error)
-                : message;
-        if (status && msg) {
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.InternalServerError =
+        exports.RateLimitError =
+        exports.UnprocessableEntityError =
+        exports.ConflictError =
+        exports.NotFoundError =
+        exports.PermissionDeniedError =
+        exports.AuthenticationError =
+        exports.BadRequestError =
+        exports.APIConnectionTimeoutError =
+        exports.APIConnectionError =
+        exports.APIUserAbortError =
+        exports.APIError =
+        exports.OpenAIError =
+          void 0;
+      const core_1 = __nccwpck_require__(1798);
+      class OpenAIError extends Error {}
+      exports.OpenAIError = OpenAIError;
+      class APIError extends OpenAIError {
+        constructor(status, error, message, headers) {
+          super(`${APIError.makeMessage(status, error, message)}`);
+          this.status = status;
+          this.headers = headers;
+          const data = error;
+          this.error = data;
+          this.code = data?.["code"];
+          this.param = data?.["param"];
+          this.type = data?.["type"];
+        }
+        static makeMessage(status, error, message) {
+          const msg = error?.message
+            ? typeof error.message === "string"
+              ? error.message
+              : JSON.stringify(error.message)
+            : error
+            ? JSON.stringify(error)
+            : message;
+          if (status && msg) {
             return `${status} ${msg}`;
-        }
-        if (status) {
+          }
+          if (status) {
             return `${status} status code (no body)`;
-        }
-        if (msg) {
+          }
+          if (msg) {
             return msg;
+          }
+          return "(no status code or body)";
         }
-        return '(no status code or body)';
-    }
-    static generate(status, errorResponse, message, headers) {
-        if (!status) {
-            return new APIConnectionError({ cause: (0, core_1.castToError)(errorResponse) });
-        }
-        const error = errorResponse?.['error'];
-        if (status === 400) {
+        static generate(status, errorResponse, message, headers) {
+          if (!status) {
+            return new APIConnectionError({
+              cause: (0, core_1.castToError)(errorResponse),
+            });
+          }
+          const error = errorResponse?.["error"];
+          if (status === 400) {
             return new BadRequestError(status, error, message, headers);
-        }
-        if (status === 401) {
+          }
+          if (status === 401) {
             return new AuthenticationError(status, error, message, headers);
-        }
-        if (status === 403) {
+          }
+          if (status === 403) {
             return new PermissionDeniedError(status, error, message, headers);
-        }
-        if (status === 404) {
+          }
+          if (status === 404) {
             return new NotFoundError(status, error, message, headers);
-        }
-        if (status === 409) {
+          }
+          if (status === 409) {
             return new ConflictError(status, error, message, headers);
-        }
-        if (status === 422) {
-            return new UnprocessableEntityError(status, error, message, headers);
-        }
-        if (status === 429) {
+          }
+          if (status === 422) {
+            return new UnprocessableEntityError(
+              status,
+              error,
+              message,
+              headers
+            );
+          }
+          if (status === 429) {
             return new RateLimitError(status, error, message, headers);
-        }
-        if (status >= 500) {
+          }
+          if (status >= 500) {
             return new InternalServerError(status, error, message, headers);
+          }
+          return new APIError(status, error, message, headers);
         }
-        return new APIError(status, error, message, headers);
-    }
-}
-exports.APIError = APIError;
-class APIUserAbortError extends APIError {
-    constructor({ message } = {}) {
-        super(undefined, undefined, message || 'Request was aborted.', undefined);
-        this.status = undefined;
-    }
-}
-exports.APIUserAbortError = APIUserAbortError;
-class APIConnectionError extends APIError {
-    constructor({ message, cause }) {
-        super(undefined, undefined, message || 'Connection error.', undefined);
-        this.status = undefined;
-        // in some environments the 'cause' property is already declared
-        // @ts-ignore
-        if (cause)
-            this.cause = cause;
-    }
-}
-exports.APIConnectionError = APIConnectionError;
-class APIConnectionTimeoutError extends APIConnectionError {
-    constructor({ message } = {}) {
-        super({ message: message ?? 'Request timed out.' });
-    }
-}
-exports.APIConnectionTimeoutError = APIConnectionTimeoutError;
-class BadRequestError extends APIError {
-    constructor() {
-        super(...arguments);
-        this.status = 400;
-    }
-}
-exports.BadRequestError = BadRequestError;
-class AuthenticationError extends APIError {
-    constructor() {
-        super(...arguments);
-        this.status = 401;
-    }
-}
-exports.AuthenticationError = AuthenticationError;
-class PermissionDeniedError extends APIError {
-    constructor() {
-        super(...arguments);
-        this.status = 403;
-    }
-}
-exports.PermissionDeniedError = PermissionDeniedError;
-class NotFoundError extends APIError {
-    constructor() {
-        super(...arguments);
-        this.status = 404;
-    }
-}
-exports.NotFoundError = NotFoundError;
-class ConflictError extends APIError {
-    constructor() {
-        super(...arguments);
-        this.status = 409;
-    }
-}
-exports.ConflictError = ConflictError;
-class UnprocessableEntityError extends APIError {
-    constructor() {
-        super(...arguments);
-        this.status = 422;
-    }
-}
-exports.UnprocessableEntityError = UnprocessableEntityError;
-class RateLimitError extends APIError {
-    constructor() {
-        super(...arguments);
-        this.status = 429;
-    }
-}
-exports.RateLimitError = RateLimitError;
-class InternalServerError extends APIError {
-}
-exports.InternalServerError = InternalServerError;
-//# sourceMappingURL=error.js.map
-
-/***/ }),
-
-/***/ 47:
-/***/ (function(module, exports, __nccwpck_require__) {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-var _a;
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.fileFromPath = exports.toFile = exports.UnprocessableEntityError = exports.PermissionDeniedError = exports.InternalServerError = exports.AuthenticationError = exports.BadRequestError = exports.RateLimitError = exports.ConflictError = exports.NotFoundError = exports.APIUserAbortError = exports.APIConnectionTimeoutError = exports.APIConnectionError = exports.APIError = exports.OpenAIError = exports.OpenAI = void 0;
-const Core = __importStar(__nccwpck_require__(1798));
-const Pagination = __importStar(__nccwpck_require__(7401));
-const Errors = __importStar(__nccwpck_require__(8905));
-const Uploads = __importStar(__nccwpck_require__(6800));
-const API = __importStar(__nccwpck_require__(5690));
-/** API Client for interfacing with the OpenAI API. */
-class OpenAI extends Core.APIClient {
-    /**
-     * API Client for interfacing with the OpenAI API.
-     *
-     * @param {string} [opts.apiKey==process.env['OPENAI_API_KEY'] ?? undefined]
-     * @param {string | null} [opts.organization==process.env['OPENAI_ORG_ID'] ?? null]
-     * @param {string} [opts.baseURL] - Override the default base URL for the API.
-     * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.
-     * @param {number} [opts.httpAgent] - An HTTP agent used to manage HTTP(s) connections.
-     * @param {Core.Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.
-     * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.
-     * @param {Core.Headers} opts.defaultHeaders - Default headers to include with every request to the API.
-     * @param {Core.DefaultQuery} opts.defaultQuery - Default query parameters to include with every request to the API.
-     * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.
-     */
-    constructor({ apiKey = Core.readEnv('OPENAI_API_KEY'), organization = Core.readEnv('OPENAI_ORG_ID') ?? null, ...opts } = {}) {
-        if (apiKey === undefined) {
-            throw new Errors.OpenAIError("The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' }).");
+      }
+      exports.APIError = APIError;
+      class APIUserAbortError extends APIError {
+        constructor({ message } = {}) {
+          super(
+            undefined,
+            undefined,
+            message || "Request was aborted.",
+            undefined
+          );
+          this.status = undefined;
         }
-        const options = {
+      }
+      exports.APIUserAbortError = APIUserAbortError;
+      class APIConnectionError extends APIError {
+        constructor({ message, cause }) {
+          super(
+            undefined,
+            undefined,
+            message || "Connection error.",
+            undefined
+          );
+          this.status = undefined;
+          // in some environments the 'cause' property is already declared
+          // @ts-ignore
+          if (cause) this.cause = cause;
+        }
+      }
+      exports.APIConnectionError = APIConnectionError;
+      class APIConnectionTimeoutError extends APIConnectionError {
+        constructor({ message } = {}) {
+          super({ message: message ?? "Request timed out." });
+        }
+      }
+      exports.APIConnectionTimeoutError = APIConnectionTimeoutError;
+      class BadRequestError extends APIError {
+        constructor() {
+          super(...arguments);
+          this.status = 400;
+        }
+      }
+      exports.BadRequestError = BadRequestError;
+      class AuthenticationError extends APIError {
+        constructor() {
+          super(...arguments);
+          this.status = 401;
+        }
+      }
+      exports.AuthenticationError = AuthenticationError;
+      class PermissionDeniedError extends APIError {
+        constructor() {
+          super(...arguments);
+          this.status = 403;
+        }
+      }
+      exports.PermissionDeniedError = PermissionDeniedError;
+      class NotFoundError extends APIError {
+        constructor() {
+          super(...arguments);
+          this.status = 404;
+        }
+      }
+      exports.NotFoundError = NotFoundError;
+      class ConflictError extends APIError {
+        constructor() {
+          super(...arguments);
+          this.status = 409;
+        }
+      }
+      exports.ConflictError = ConflictError;
+      class UnprocessableEntityError extends APIError {
+        constructor() {
+          super(...arguments);
+          this.status = 422;
+        }
+      }
+      exports.UnprocessableEntityError = UnprocessableEntityError;
+      class RateLimitError extends APIError {
+        constructor() {
+          super(...arguments);
+          this.status = 429;
+        }
+      }
+      exports.RateLimitError = RateLimitError;
+      class InternalServerError extends APIError {}
+      exports.InternalServerError = InternalServerError;
+      //# sourceMappingURL=error.js.map
+
+      /***/
+    },
+
+    /***/ 47: /***/ function (module, exports, __nccwpck_require__) {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      var _a;
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.fileFromPath =
+        exports.toFile =
+        exports.UnprocessableEntityError =
+        exports.PermissionDeniedError =
+        exports.InternalServerError =
+        exports.AuthenticationError =
+        exports.BadRequestError =
+        exports.RateLimitError =
+        exports.ConflictError =
+        exports.NotFoundError =
+        exports.APIUserAbortError =
+        exports.APIConnectionTimeoutError =
+        exports.APIConnectionError =
+        exports.APIError =
+        exports.OpenAIError =
+        exports.OpenAI =
+          void 0;
+      const Core = __importStar(__nccwpck_require__(1798));
+      const Pagination = __importStar(__nccwpck_require__(7401));
+      const Errors = __importStar(__nccwpck_require__(8905));
+      const Uploads = __importStar(__nccwpck_require__(6800));
+      const API = __importStar(__nccwpck_require__(5690));
+      /** API Client for interfacing with the OpenAI API. */
+      class OpenAI extends Core.APIClient {
+        /**
+         * API Client for interfacing with the OpenAI API.
+         *
+         * @param {string} [opts.apiKey==process.env['OPENAI_API_KEY'] ?? undefined]
+         * @param {string | null} [opts.organization==process.env['OPENAI_ORG_ID'] ?? null]
+         * @param {string} [opts.baseURL] - Override the default base URL for the API.
+         * @param {number} [opts.timeout=10 minutes] - The maximum amount of time (in milliseconds) the client will wait for a response before timing out.
+         * @param {number} [opts.httpAgent] - An HTTP agent used to manage HTTP(s) connections.
+         * @param {Core.Fetch} [opts.fetch] - Specify a custom `fetch` function implementation.
+         * @param {number} [opts.maxRetries=2] - The maximum number of times the client will retry a request.
+         * @param {Core.Headers} opts.defaultHeaders - Default headers to include with every request to the API.
+         * @param {Core.DefaultQuery} opts.defaultQuery - Default query parameters to include with every request to the API.
+         * @param {boolean} [opts.dangerouslyAllowBrowser=false] - By default, client-side use of this library is not allowed, as it risks exposing your secret API credentials to attackers.
+         */
+        constructor({
+          apiKey = Core.readEnv("OPENAI_API_KEY"),
+          organization = Core.readEnv("OPENAI_ORG_ID") ?? null,
+          ...opts
+        } = {}) {
+          if (apiKey === undefined) {
+            throw new Errors.OpenAIError(
+              "The OPENAI_API_KEY environment variable is missing or empty; either provide it, or instantiate the OpenAI client with an apiKey option, like new OpenAI({ apiKey: 'My API Key' })."
+            );
+          }
+          const options = {
             apiKey,
             organization,
             ...opts,
             baseURL: opts.baseURL ?? `https://api.openai.com/v1`,
-        };
-        if (!options.dangerouslyAllowBrowser && Core.isRunningInBrowser()) {
-            throw new Errors.OpenAIError("It looks like you're running in a browser-like environment.\n\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\nIf you understand the risks and have appropriate mitigations in place,\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\n\nnew OpenAI({ apiKey, dangerouslyAllowBrowser: true });\n\nhttps://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety\n");
-        }
-        super({
+          };
+          if (!options.dangerouslyAllowBrowser && Core.isRunningInBrowser()) {
+            throw new Errors.OpenAIError(
+              "It looks like you're running in a browser-like environment.\n\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\nIf you understand the risks and have appropriate mitigations in place,\nyou can set the `dangerouslyAllowBrowser` option to `true`, e.g.,\n\nnew OpenAI({ apiKey, dangerouslyAllowBrowser: true });\n\nhttps://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety\n"
+            );
+          }
+          super({
             baseURL: options.baseURL,
             timeout: options.timeout ?? 600000 /* 10 minutes */,
             httpAgent: options.httpAgent,
             maxRetries: options.maxRetries,
             fetch: options.fetch,
-        });
-        this.completions = new API.Completions(this);
-        this.chat = new API.Chat(this);
-        this.edits = new API.Edits(this);
-        this.embeddings = new API.Embeddings(this);
-        this.files = new API.Files(this);
-        this.images = new API.Images(this);
-        this.audio = new API.Audio(this);
-        this.moderations = new API.Moderations(this);
-        this.models = new API.Models(this);
-        this.fineTuning = new API.FineTuning(this);
-        this.fineTunes = new API.FineTunes(this);
-        this.beta = new API.Beta(this);
-        this._options = options;
-        this.apiKey = apiKey;
-        this.organization = organization;
-    }
-    defaultQuery() {
-        return this._options.defaultQuery;
-    }
-    defaultHeaders(opts) {
-        return {
+          });
+          this.completions = new API.Completions(this);
+          this.chat = new API.Chat(this);
+          this.edits = new API.Edits(this);
+          this.embeddings = new API.Embeddings(this);
+          this.files = new API.Files(this);
+          this.images = new API.Images(this);
+          this.audio = new API.Audio(this);
+          this.moderations = new API.Moderations(this);
+          this.models = new API.Models(this);
+          this.fineTuning = new API.FineTuning(this);
+          this.fineTunes = new API.FineTunes(this);
+          this.beta = new API.Beta(this);
+          this._options = options;
+          this.apiKey = apiKey;
+          this.organization = organization;
+        }
+        defaultQuery() {
+          return this._options.defaultQuery;
+        }
+        defaultHeaders(opts) {
+          return {
             ...super.defaultHeaders(opts),
-            'OpenAI-Organization': this.organization,
+            "OpenAI-Organization": this.organization,
             ...this._options.defaultHeaders,
+          };
+        }
+        authHeaders(opts) {
+          return { Authorization: `Bearer ${this.apiKey}` };
+        }
+      }
+      exports.OpenAI = OpenAI;
+      _a = OpenAI;
+      OpenAI.OpenAI = _a;
+      OpenAI.OpenAIError = Errors.OpenAIError;
+      OpenAI.APIError = Errors.APIError;
+      OpenAI.APIConnectionError = Errors.APIConnectionError;
+      OpenAI.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;
+      OpenAI.APIUserAbortError = Errors.APIUserAbortError;
+      OpenAI.NotFoundError = Errors.NotFoundError;
+      OpenAI.ConflictError = Errors.ConflictError;
+      OpenAI.RateLimitError = Errors.RateLimitError;
+      OpenAI.BadRequestError = Errors.BadRequestError;
+      OpenAI.AuthenticationError = Errors.AuthenticationError;
+      OpenAI.InternalServerError = Errors.InternalServerError;
+      OpenAI.PermissionDeniedError = Errors.PermissionDeniedError;
+      OpenAI.UnprocessableEntityError = Errors.UnprocessableEntityError;
+      (exports.OpenAIError = Errors.OpenAIError),
+        (exports.APIError = Errors.APIError),
+        (exports.APIConnectionError = Errors.APIConnectionError),
+        (exports.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError),
+        (exports.APIUserAbortError = Errors.APIUserAbortError),
+        (exports.NotFoundError = Errors.NotFoundError),
+        (exports.ConflictError = Errors.ConflictError),
+        (exports.RateLimitError = Errors.RateLimitError),
+        (exports.BadRequestError = Errors.BadRequestError),
+        (exports.AuthenticationError = Errors.AuthenticationError),
+        (exports.InternalServerError = Errors.InternalServerError),
+        (exports.PermissionDeniedError = Errors.PermissionDeniedError),
+        (exports.UnprocessableEntityError = Errors.UnprocessableEntityError);
+      exports.toFile = Uploads.toFile;
+      exports.fileFromPath = Uploads.fileFromPath;
+      (function (OpenAI) {
+        // Helper functions
+        OpenAI.toFile = Uploads.toFile;
+        OpenAI.fileFromPath = Uploads.fileFromPath;
+        OpenAI.Page = Pagination.Page;
+        OpenAI.CursorPage = Pagination.CursorPage;
+        OpenAI.Completions = API.Completions;
+        OpenAI.Chat = API.Chat;
+        OpenAI.Edits = API.Edits;
+        OpenAI.Embeddings = API.Embeddings;
+        OpenAI.Files = API.Files;
+        OpenAI.FileObjectsPage = API.FileObjectsPage;
+        OpenAI.Images = API.Images;
+        OpenAI.Audio = API.Audio;
+        OpenAI.Moderations = API.Moderations;
+        OpenAI.Models = API.Models;
+        OpenAI.ModelsPage = API.ModelsPage;
+        OpenAI.FineTuning = API.FineTuning;
+        OpenAI.FineTunes = API.FineTunes;
+        OpenAI.FineTunesPage = API.FineTunesPage;
+        OpenAI.Beta = API.Beta;
+      })((OpenAI = exports.OpenAI || (exports.OpenAI = {})));
+      exports = module.exports = OpenAI;
+      exports["default"] = OpenAI;
+      //# sourceMappingURL=index.js.map
+
+      /***/
+    },
+
+    /***/ 8398: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
+
+      var __classPrivateFieldSet =
+        (this && this.__classPrivateFieldSet) ||
+        function (receiver, state, value, kind, f) {
+          if (kind === "m")
+            throw new TypeError("Private method is not writable");
+          if (kind === "a" && !f)
+            throw new TypeError(
+              "Private accessor was defined without a setter"
+            );
+          if (
+            typeof state === "function"
+              ? receiver !== state || !f
+              : !state.has(receiver)
+          )
+            throw new TypeError(
+              "Cannot write private member to an object whose class did not declare it"
+            );
+          return (
+            kind === "a"
+              ? f.call(receiver, value)
+              : f
+              ? (f.value = value)
+              : state.set(receiver, value),
+            value
+          );
         };
-    }
-    authHeaders(opts) {
-        return { Authorization: `Bearer ${this.apiKey}` };
-    }
-}
-exports.OpenAI = OpenAI;
-_a = OpenAI;
-OpenAI.OpenAI = _a;
-OpenAI.OpenAIError = Errors.OpenAIError;
-OpenAI.APIError = Errors.APIError;
-OpenAI.APIConnectionError = Errors.APIConnectionError;
-OpenAI.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError;
-OpenAI.APIUserAbortError = Errors.APIUserAbortError;
-OpenAI.NotFoundError = Errors.NotFoundError;
-OpenAI.ConflictError = Errors.ConflictError;
-OpenAI.RateLimitError = Errors.RateLimitError;
-OpenAI.BadRequestError = Errors.BadRequestError;
-OpenAI.AuthenticationError = Errors.AuthenticationError;
-OpenAI.InternalServerError = Errors.InternalServerError;
-OpenAI.PermissionDeniedError = Errors.PermissionDeniedError;
-OpenAI.UnprocessableEntityError = Errors.UnprocessableEntityError;
-exports.OpenAIError = Errors.OpenAIError, exports.APIError = Errors.APIError, exports.APIConnectionError = Errors.APIConnectionError, exports.APIConnectionTimeoutError = Errors.APIConnectionTimeoutError, exports.APIUserAbortError = Errors.APIUserAbortError, exports.NotFoundError = Errors.NotFoundError, exports.ConflictError = Errors.ConflictError, exports.RateLimitError = Errors.RateLimitError, exports.BadRequestError = Errors.BadRequestError, exports.AuthenticationError = Errors.AuthenticationError, exports.InternalServerError = Errors.InternalServerError, exports.PermissionDeniedError = Errors.PermissionDeniedError, exports.UnprocessableEntityError = Errors.UnprocessableEntityError;
-exports.toFile = Uploads.toFile;
-exports.fileFromPath = Uploads.fileFromPath;
-(function (OpenAI) {
-    // Helper functions
-    OpenAI.toFile = Uploads.toFile;
-    OpenAI.fileFromPath = Uploads.fileFromPath;
-    OpenAI.Page = Pagination.Page;
-    OpenAI.CursorPage = Pagination.CursorPage;
-    OpenAI.Completions = API.Completions;
-    OpenAI.Chat = API.Chat;
-    OpenAI.Edits = API.Edits;
-    OpenAI.Embeddings = API.Embeddings;
-    OpenAI.Files = API.Files;
-    OpenAI.FileObjectsPage = API.FileObjectsPage;
-    OpenAI.Images = API.Images;
-    OpenAI.Audio = API.Audio;
-    OpenAI.Moderations = API.Moderations;
-    OpenAI.Models = API.Models;
-    OpenAI.ModelsPage = API.ModelsPage;
-    OpenAI.FineTuning = API.FineTuning;
-    OpenAI.FineTunes = API.FineTunes;
-    OpenAI.FineTunesPage = API.FineTunesPage;
-    OpenAI.Beta = API.Beta;
-})(OpenAI = exports.OpenAI || (exports.OpenAI = {}));
-exports = module.exports = OpenAI;
-exports["default"] = OpenAI;
-//# sourceMappingURL=index.js.map
-
-/***/ }),
-
-/***/ 8398:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
-    if (kind === "m") throw new TypeError("Private method is not writable");
-    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
-    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
-    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
-};
-var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
-    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
-    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
-    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
-};
-var _AbstractChatCompletionRunner_instances, _AbstractChatCompletionRunner_connectedPromise, _AbstractChatCompletionRunner_resolveConnectedPromise, _AbstractChatCompletionRunner_rejectConnectedPromise, _AbstractChatCompletionRunner_endPromise, _AbstractChatCompletionRunner_resolveEndPromise, _AbstractChatCompletionRunner_rejectEndPromise, _AbstractChatCompletionRunner_listeners, _AbstractChatCompletionRunner_ended, _AbstractChatCompletionRunner_errored, _AbstractChatCompletionRunner_aborted, _AbstractChatCompletionRunner_catchingPromiseCreated, _AbstractChatCompletionRunner_getFinalContent, _AbstractChatCompletionRunner_getFinalMessage, _AbstractChatCompletionRunner_getFinalFunctionCall, _AbstractChatCompletionRunner_getFinalFunctionCallResult, _AbstractChatCompletionRunner_calculateTotalUsage, _AbstractChatCompletionRunner_handleError, _AbstractChatCompletionRunner_validateParams, _AbstractChatCompletionRunner_stringifyFunctionCallResult;
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.AbstractChatCompletionRunner = void 0;
-const error_1 = __nccwpck_require__(8905);
-const RunnableFunction_1 = __nccwpck_require__(5464);
-const chatCompletionUtils_1 = __nccwpck_require__(7858);
-const DEFAULT_MAX_CHAT_COMPLETIONS = 10;
-class AbstractChatCompletionRunner {
-    constructor() {
-        _AbstractChatCompletionRunner_instances.add(this);
-        this.controller = new AbortController();
-        _AbstractChatCompletionRunner_connectedPromise.set(this, void 0);
-        _AbstractChatCompletionRunner_resolveConnectedPromise.set(this, () => { });
-        _AbstractChatCompletionRunner_rejectConnectedPromise.set(this, () => { });
-        _AbstractChatCompletionRunner_endPromise.set(this, void 0);
-        _AbstractChatCompletionRunner_resolveEndPromise.set(this, () => { });
-        _AbstractChatCompletionRunner_rejectEndPromise.set(this, () => { });
-        _AbstractChatCompletionRunner_listeners.set(this, {});
-        this._chatCompletions = [];
-        this.messages = [];
-        _AbstractChatCompletionRunner_ended.set(this, false);
-        _AbstractChatCompletionRunner_errored.set(this, false);
-        _AbstractChatCompletionRunner_aborted.set(this, false);
-        _AbstractChatCompletionRunner_catchingPromiseCreated.set(this, false);
-        _AbstractChatCompletionRunner_handleError.set(this, (error) => {
-            __classPrivateFieldSet(this, _AbstractChatCompletionRunner_errored, true, "f");
-            if (error instanceof Error && error.name === 'AbortError') {
-                error = new error_1.APIUserAbortError();
+      var __classPrivateFieldGet =
+        (this && this.__classPrivateFieldGet) ||
+        function (receiver, state, kind, f) {
+          if (kind === "a" && !f)
+            throw new TypeError(
+              "Private accessor was defined without a getter"
+            );
+          if (
+            typeof state === "function"
+              ? receiver !== state || !f
+              : !state.has(receiver)
+          )
+            throw new TypeError(
+              "Cannot read private member from an object whose class did not declare it"
+            );
+          return kind === "m"
+            ? f
+            : kind === "a"
+            ? f.call(receiver)
+            : f
+            ? f.value
+            : state.get(receiver);
+        };
+      var _AbstractChatCompletionRunner_instances,
+        _AbstractChatCompletionRunner_connectedPromise,
+        _AbstractChatCompletionRunner_resolveConnectedPromise,
+        _AbstractChatCompletionRunner_rejectConnectedPromise,
+        _AbstractChatCompletionRunner_endPromise,
+        _AbstractChatCompletionRunner_resolveEndPromise,
+        _AbstractChatCompletionRunner_rejectEndPromise,
+        _AbstractChatCompletionRunner_listeners,
+        _AbstractChatCompletionRunner_ended,
+        _AbstractChatCompletionRunner_errored,
+        _AbstractChatCompletionRunner_aborted,
+        _AbstractChatCompletionRunner_catchingPromiseCreated,
+        _AbstractChatCompletionRunner_getFinalContent,
+        _AbstractChatCompletionRunner_getFinalMessage,
+        _AbstractChatCompletionRunner_getFinalFunctionCall,
+        _AbstractChatCompletionRunner_getFinalFunctionCallResult,
+        _AbstractChatCompletionRunner_calculateTotalUsage,
+        _AbstractChatCompletionRunner_handleError,
+        _AbstractChatCompletionRunner_validateParams,
+        _AbstractChatCompletionRunner_stringifyFunctionCallResult;
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.AbstractChatCompletionRunner = void 0;
+      const error_1 = __nccwpck_require__(8905);
+      const RunnableFunction_1 = __nccwpck_require__(5464);
+      const chatCompletionUtils_1 = __nccwpck_require__(7858);
+      const DEFAULT_MAX_CHAT_COMPLETIONS = 10;
+      class AbstractChatCompletionRunner {
+        constructor() {
+          _AbstractChatCompletionRunner_instances.add(this);
+          this.controller = new AbortController();
+          _AbstractChatCompletionRunner_connectedPromise.set(this, void 0);
+          _AbstractChatCompletionRunner_resolveConnectedPromise.set(
+            this,
+            () => {}
+          );
+          _AbstractChatCompletionRunner_rejectConnectedPromise.set(
+            this,
+            () => {}
+          );
+          _AbstractChatCompletionRunner_endPromise.set(this, void 0);
+          _AbstractChatCompletionRunner_resolveEndPromise.set(this, () => {});
+          _AbstractChatCompletionRunner_rejectEndPromise.set(this, () => {});
+          _AbstractChatCompletionRunner_listeners.set(this, {});
+          this._chatCompletions = [];
+          this.messages = [];
+          _AbstractChatCompletionRunner_ended.set(this, false);
+          _AbstractChatCompletionRunner_errored.set(this, false);
+          _AbstractChatCompletionRunner_aborted.set(this, false);
+          _AbstractChatCompletionRunner_catchingPromiseCreated.set(this, false);
+          _AbstractChatCompletionRunner_handleError.set(this, (error) => {
+            __classPrivateFieldSet(
+              this,
+              _AbstractChatCompletionRunner_errored,
+              true,
+              "f"
+            );
+            if (error instanceof Error && error.name === "AbortError") {
+              error = new error_1.APIUserAbortError();
             }
             if (error instanceof error_1.APIUserAbortError) {
-                __classPrivateFieldSet(this, _AbstractChatCompletionRunner_aborted, true, "f");
-                return this._emit('abort', error);
+              __classPrivateFieldSet(
+                this,
+                _AbstractChatCompletionRunner_aborted,
+                true,
+                "f"
+              );
+              return this._emit("abort", error);
             }
             if (error instanceof error_1.OpenAIError) {
-                return this._emit('error', error);
+              return this._emit("error", error);
             }
             if (error instanceof Error) {
-                const openAIError = new error_1.OpenAIError(error.message);
-                // @ts-ignore
-                openAIError.cause = error;
-                return this._emit('error', openAIError);
+              const openAIError = new error_1.OpenAIError(error.message);
+              // @ts-ignore
+              openAIError.cause = error;
+              return this._emit("error", openAIError);
             }
-            return this._emit('error', new error_1.OpenAIError(String(error)));
-        });
-        __classPrivateFieldSet(this, _AbstractChatCompletionRunner_connectedPromise, new Promise((resolve, reject) => {
-            __classPrivateFieldSet(this, _AbstractChatCompletionRunner_resolveConnectedPromise, resolve, "f");
-            __classPrivateFieldSet(this, _AbstractChatCompletionRunner_rejectConnectedPromise, reject, "f");
-        }), "f");
-        __classPrivateFieldSet(this, _AbstractChatCompletionRunner_endPromise, new Promise((resolve, reject) => {
-            __classPrivateFieldSet(this, _AbstractChatCompletionRunner_resolveEndPromise, resolve, "f");
-            __classPrivateFieldSet(this, _AbstractChatCompletionRunner_rejectEndPromise, reject, "f");
-        }), "f");
-        // Don't let these promises cause unhandled rejection errors.
-        // we will manually cause an unhandled rejection error later
-        // if the user hasn't registered any error listener or called
-        // any promise-returning method.
-        __classPrivateFieldGet(this, _AbstractChatCompletionRunner_connectedPromise, "f").catch(() => { });
-        __classPrivateFieldGet(this, _AbstractChatCompletionRunner_endPromise, "f").catch(() => { });
-    }
-    _run(executor) {
-        // Unfortunately if we call `executor()` immediately we get runtime errors about
-        // references to `this` before the `super()` constructor call returns.
-        setTimeout(() => {
+            return this._emit("error", new error_1.OpenAIError(String(error)));
+          });
+          __classPrivateFieldSet(
+            this,
+            _AbstractChatCompletionRunner_connectedPromise,
+            new Promise((resolve, reject) => {
+              __classPrivateFieldSet(
+                this,
+                _AbstractChatCompletionRunner_resolveConnectedPromise,
+                resolve,
+                "f"
+              );
+              __classPrivateFieldSet(
+                this,
+                _AbstractChatCompletionRunner_rejectConnectedPromise,
+                reject,
+                "f"
+              );
+            }),
+            "f"
+          );
+          __classPrivateFieldSet(
+            this,
+            _AbstractChatCompletionRunner_endPromise,
+            new Promise((resolve, reject) => {
+              __classPrivateFieldSet(
+                this,
+                _AbstractChatCompletionRunner_resolveEndPromise,
+                resolve,
+                "f"
+              );
+              __classPrivateFieldSet(
+                this,
+                _AbstractChatCompletionRunner_rejectEndPromise,
+                reject,
+                "f"
+              );
+            }),
+            "f"
+          );
+          // Don't let these promises cause unhandled rejection errors.
+          // we will manually cause an unhandled rejection error later
+          // if the user hasn't registered any error listener or called
+          // any promise-returning method.
+          __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_connectedPromise,
+            "f"
+          ).catch(() => {});
+          __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_endPromise,
+            "f"
+          ).catch(() => {});
+        }
+        _run(executor) {
+          // Unfortunately if we call `executor()` immediately we get runtime errors about
+          // references to `this` before the `super()` constructor call returns.
+          setTimeout(() => {
             executor().then(() => {
-                this._emitFinal();
-                this._emit('end');
+              this._emitFinal();
+              this._emit("end");
             }, __classPrivateFieldGet(this, _AbstractChatCompletionRunner_handleError, "f"));
-        }, 0);
-    }
-    _addChatCompletion(chatCompletion) {
-        this._chatCompletions.push(chatCompletion);
-        this._emit('chatCompletion', chatCompletion);
-        const message = chatCompletion.choices[0]?.message;
-        if (message)
-            this._addMessage(message);
-        return chatCompletion;
-    }
-    _addMessage(message, emit = true) {
-        this.messages.push(message);
-        if (emit) {
-            this._emit('message', message);
-            if (((0, chatCompletionUtils_1.isFunctionMessage)(message) || (0, chatCompletionUtils_1.isToolMessage)(message)) && message.content) {
-                // Note, this assumes that {role: 'tool', content: …} is always the result of a call of tool of type=function.
-                this._emit('functionCallResult', message.content);
-            }
-            else if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message.function_call) {
-                this._emit('functionCall', message.function_call);
-            }
-            else if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message.tool_calls) {
-                for (const tool_call of message.tool_calls) {
-                    if (tool_call.type === 'function') {
-                        this._emit('functionCall', tool_call.function);
-                    }
+          }, 0);
+        }
+        _addChatCompletion(chatCompletion) {
+          this._chatCompletions.push(chatCompletion);
+          this._emit("chatCompletion", chatCompletion);
+          const message = chatCompletion.choices[0]?.message;
+          if (message) this._addMessage(message);
+          return chatCompletion;
+        }
+        _addMessage(message, emit = true) {
+          this.messages.push(message);
+          if (emit) {
+            this._emit("message", message);
+            if (
+              ((0, chatCompletionUtils_1.isFunctionMessage)(message) ||
+                (0, chatCompletionUtils_1.isToolMessage)(message)) &&
+              message.content
+            ) {
+              // Note, this assumes that {role: 'tool', content: …} is always the result of a call of tool of type=function.
+              this._emit("functionCallResult", message.content);
+            } else if (
+              (0, chatCompletionUtils_1.isAssistantMessage)(message) &&
+              message.function_call
+            ) {
+              this._emit("functionCall", message.function_call);
+            } else if (
+              (0, chatCompletionUtils_1.isAssistantMessage)(message) &&
+              message.tool_calls
+            ) {
+              for (const tool_call of message.tool_calls) {
+                if (tool_call.type === "function") {
+                  this._emit("functionCall", tool_call.function);
                 }
+              }
             }
+          }
         }
-    }
-    _connected() {
-        if (this.ended)
-            return;
-        __classPrivateFieldGet(this, _AbstractChatCompletionRunner_resolveConnectedPromise, "f").call(this);
-        this._emit('connect');
-    }
-    get ended() {
-        return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_ended, "f");
-    }
-    get errored() {
-        return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_errored, "f");
-    }
-    get aborted() {
-        return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_aborted, "f");
-    }
-    abort() {
-        this.controller.abort();
-    }
-    /**
-     * Adds the listener function to the end of the listeners array for the event.
-     * No checks are made to see if the listener has already been added. Multiple calls passing
-     * the same combination of event and listener will result in the listener being added, and
-     * called, multiple times.
-     * @returns this ChatCompletionStream, so that calls can be chained
-     */
-    on(event, listener) {
-        const listeners = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event] || (__classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event] = []);
-        listeners.push({ listener });
-        return this;
-    }
-    /**
-     * Removes the specified listener from the listener array for the event.
-     * off() will remove, at most, one instance of a listener from the listener array. If any single
-     * listener has been added multiple times to the listener array for the specified event, then
-     * off() must be called multiple times to remove each instance.
-     * @returns this ChatCompletionStream, so that calls can be chained
-     */
-    off(event, listener) {
-        const listeners = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event];
-        if (!listeners)
-            return this;
-        const index = listeners.findIndex((l) => l.listener === listener);
-        if (index >= 0)
-            listeners.splice(index, 1);
-        return this;
-    }
-    /**
-     * Adds a one-time listener function for the event. The next time the event is triggered,
-     * this listener is removed and then invoked.
-     * @returns this ChatCompletionStream, so that calls can be chained
-     */
-    once(event, listener) {
-        const listeners = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event] || (__classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event] = []);
-        listeners.push({ listener, once: true });
-        return this;
-    }
-    /**
-     * This is similar to `.once()`, but returns a Promise that resolves the next time
-     * the event is triggered, instead of calling a listener callback.
-     * @returns a Promise that resolves the next time given event is triggered,
-     * or rejects if an error is emitted.  (If you request the 'error' event,
-     * returns a promise that resolves with the error).
-     *
-     * Example:
-     *
-     *   const message = await stream.emitted('message') // rejects if the stream errors
-     */
-    emitted(event) {
-        return new Promise((resolve, reject) => {
-            __classPrivateFieldSet(this, _AbstractChatCompletionRunner_catchingPromiseCreated, true, "f");
-            if (event !== 'error')
-                this.once('error', reject);
+        _connected() {
+          if (this.ended) return;
+          __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_resolveConnectedPromise,
+            "f"
+          ).call(this);
+          this._emit("connect");
+        }
+        get ended() {
+          return __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_ended,
+            "f"
+          );
+        }
+        get errored() {
+          return __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_errored,
+            "f"
+          );
+        }
+        get aborted() {
+          return __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_aborted,
+            "f"
+          );
+        }
+        abort() {
+          this.controller.abort();
+        }
+        /**
+         * Adds the listener function to the end of the listeners array for the event.
+         * No checks are made to see if the listener has already been added. Multiple calls passing
+         * the same combination of event and listener will result in the listener being added, and
+         * called, multiple times.
+         * @returns this ChatCompletionStream, so that calls can be chained
+         */
+        on(event, listener) {
+          const listeners =
+            __classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_listeners,
+              "f"
+            )[event] ||
+            (__classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_listeners,
+              "f"
+            )[event] = []);
+          listeners.push({ listener });
+          return this;
+        }
+        /**
+         * Removes the specified listener from the listener array for the event.
+         * off() will remove, at most, one instance of a listener from the listener array. If any single
+         * listener has been added multiple times to the listener array for the specified event, then
+         * off() must be called multiple times to remove each instance.
+         * @returns this ChatCompletionStream, so that calls can be chained
+         */
+        off(event, listener) {
+          const listeners = __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_listeners,
+            "f"
+          )[event];
+          if (!listeners) return this;
+          const index = listeners.findIndex((l) => l.listener === listener);
+          if (index >= 0) listeners.splice(index, 1);
+          return this;
+        }
+        /**
+         * Adds a one-time listener function for the event. The next time the event is triggered,
+         * this listener is removed and then invoked.
+         * @returns this ChatCompletionStream, so that calls can be chained
+         */
+        once(event, listener) {
+          const listeners =
+            __classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_listeners,
+              "f"
+            )[event] ||
+            (__classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_listeners,
+              "f"
+            )[event] = []);
+          listeners.push({ listener, once: true });
+          return this;
+        }
+        /**
+         * This is similar to `.once()`, but returns a Promise that resolves the next time
+         * the event is triggered, instead of calling a listener callback.
+         * @returns a Promise that resolves the next time given event is triggered,
+         * or rejects if an error is emitted.  (If you request the 'error' event,
+         * returns a promise that resolves with the error).
+         *
+         * Example:
+         *
+         *   const message = await stream.emitted('message') // rejects if the stream errors
+         */
+        emitted(event) {
+          return new Promise((resolve, reject) => {
+            __classPrivateFieldSet(
+              this,
+              _AbstractChatCompletionRunner_catchingPromiseCreated,
+              true,
+              "f"
+            );
+            if (event !== "error") this.once("error", reject);
             this.once(event, resolve);
-        });
-    }
-    async done() {
-        __classPrivateFieldSet(this, _AbstractChatCompletionRunner_catchingPromiseCreated, true, "f");
-        await __classPrivateFieldGet(this, _AbstractChatCompletionRunner_endPromise, "f");
-    }
-    /**
-     * @returns a promise that resolves with the final ChatCompletion, or rejects
-     * if an error occurred or the stream ended prematurely without producing a ChatCompletion.
-     */
-    async finalChatCompletion() {
-        await this.done();
-        const completion = this._chatCompletions[this._chatCompletions.length - 1];
-        if (!completion)
-            throw new error_1.OpenAIError('stream ended without producing a ChatCompletion');
-        return completion;
-    }
-    /**
-     * @returns a promise that resolves with the content of the final ChatCompletionMessage, or rejects
-     * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
-     */
-    async finalContent() {
-        await this.done();
-        return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalContent).call(this);
-    }
-    /**
-     * @returns a promise that resolves with the the final assistant ChatCompletionMessage response,
-     * or rejects if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
-     */
-    async finalMessage() {
-        await this.done();
-        return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalMessage).call(this);
-    }
-    /**
-     * @returns a promise that resolves with the content of the final FunctionCall, or rejects
-     * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
-     */
-    async finalFunctionCall() {
-        await this.done();
-        return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalFunctionCall).call(this);
-    }
-    async finalFunctionCallResult() {
-        await this.done();
-        return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalFunctionCallResult).call(this);
-    }
-    async totalUsage() {
-        await this.done();
-        return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_calculateTotalUsage).call(this);
-    }
-    allChatCompletions() {
-        return [...this._chatCompletions];
-    }
-    _emit(event, ...args) {
-        // make sure we don't emit any events after end
-        if (__classPrivateFieldGet(this, _AbstractChatCompletionRunner_ended, "f"))
-            return;
-        if (event === 'end') {
-            __classPrivateFieldSet(this, _AbstractChatCompletionRunner_ended, true, "f");
-            __classPrivateFieldGet(this, _AbstractChatCompletionRunner_resolveEndPromise, "f").call(this);
+          });
         }
-        const listeners = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event];
-        if (listeners) {
-            __classPrivateFieldGet(this, _AbstractChatCompletionRunner_listeners, "f")[event] = listeners.filter((l) => !l.once);
+        async done() {
+          __classPrivateFieldSet(
+            this,
+            _AbstractChatCompletionRunner_catchingPromiseCreated,
+            true,
+            "f"
+          );
+          await __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_endPromise,
+            "f"
+          );
+        }
+        /**
+         * @returns a promise that resolves with the final ChatCompletion, or rejects
+         * if an error occurred or the stream ended prematurely without producing a ChatCompletion.
+         */
+        async finalChatCompletion() {
+          await this.done();
+          const completion =
+            this._chatCompletions[this._chatCompletions.length - 1];
+          if (!completion)
+            throw new error_1.OpenAIError(
+              "stream ended without producing a ChatCompletion"
+            );
+          return completion;
+        }
+        /**
+         * @returns a promise that resolves with the content of the final ChatCompletionMessage, or rejects
+         * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
+         */
+        async finalContent() {
+          await this.done();
+          return __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_instances,
+            "m",
+            _AbstractChatCompletionRunner_getFinalContent
+          ).call(this);
+        }
+        /**
+         * @returns a promise that resolves with the the final assistant ChatCompletionMessage response,
+         * or rejects if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
+         */
+        async finalMessage() {
+          await this.done();
+          return __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_instances,
+            "m",
+            _AbstractChatCompletionRunner_getFinalMessage
+          ).call(this);
+        }
+        /**
+         * @returns a promise that resolves with the content of the final FunctionCall, or rejects
+         * if an error occurred or the stream ended prematurely without producing a ChatCompletionMessage.
+         */
+        async finalFunctionCall() {
+          await this.done();
+          return __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_instances,
+            "m",
+            _AbstractChatCompletionRunner_getFinalFunctionCall
+          ).call(this);
+        }
+        async finalFunctionCallResult() {
+          await this.done();
+          return __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_instances,
+            "m",
+            _AbstractChatCompletionRunner_getFinalFunctionCallResult
+          ).call(this);
+        }
+        async totalUsage() {
+          await this.done();
+          return __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_instances,
+            "m",
+            _AbstractChatCompletionRunner_calculateTotalUsage
+          ).call(this);
+        }
+        allChatCompletions() {
+          return [...this._chatCompletions];
+        }
+        _emit(event, ...args) {
+          // make sure we don't emit any events after end
+          if (
+            __classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_ended,
+              "f"
+            )
+          )
+            return;
+          if (event === "end") {
+            __classPrivateFieldSet(
+              this,
+              _AbstractChatCompletionRunner_ended,
+              true,
+              "f"
+            );
+            __classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_resolveEndPromise,
+              "f"
+            ).call(this);
+          }
+          const listeners = __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_listeners,
+            "f"
+          )[event];
+          if (listeners) {
+            __classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_listeners,
+              "f"
+            )[event] = listeners.filter((l) => !l.once);
             listeners.forEach(({ listener }) => listener(...args));
-        }
-        if (event === 'abort') {
+          }
+          if (event === "abort") {
             const error = args[0];
-            if (!__classPrivateFieldGet(this, _AbstractChatCompletionRunner_catchingPromiseCreated, "f") && !listeners?.length) {
-                Promise.reject(error);
+            if (
+              !__classPrivateFieldGet(
+                this,
+                _AbstractChatCompletionRunner_catchingPromiseCreated,
+                "f"
+              ) &&
+              !listeners?.length
+            ) {
+              Promise.reject(error);
             }
-            __classPrivateFieldGet(this, _AbstractChatCompletionRunner_rejectConnectedPromise, "f").call(this, error);
-            __classPrivateFieldGet(this, _AbstractChatCompletionRunner_rejectEndPromise, "f").call(this, error);
-            this._emit('end');
+            __classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_rejectConnectedPromise,
+              "f"
+            ).call(this, error);
+            __classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_rejectEndPromise,
+              "f"
+            ).call(this, error);
+            this._emit("end");
             return;
-        }
-        if (event === 'error') {
+          }
+          if (event === "error") {
             // NOTE: _emit('error', error) should only be called from #handleError().
             const error = args[0];
-            if (!__classPrivateFieldGet(this, _AbstractChatCompletionRunner_catchingPromiseCreated, "f") && !listeners?.length) {
-                // Trigger an unhandled rejection if the user hasn't registered any error handlers.
-                // If you are seeing stack traces here, make sure to handle errors via either:
-                // - runner.on('error', () => ...)
-                // - await runner.done()
-                // - await runner.finalChatCompletion()
-                // - etc.
-                Promise.reject(error);
+            if (
+              !__classPrivateFieldGet(
+                this,
+                _AbstractChatCompletionRunner_catchingPromiseCreated,
+                "f"
+              ) &&
+              !listeners?.length
+            ) {
+              // Trigger an unhandled rejection if the user hasn't registered any error handlers.
+              // If you are seeing stack traces here, make sure to handle errors via either:
+              // - runner.on('error', () => ...)
+              // - await runner.done()
+              // - await runner.finalChatCompletion()
+              // - etc.
+              Promise.reject(error);
             }
-            __classPrivateFieldGet(this, _AbstractChatCompletionRunner_rejectConnectedPromise, "f").call(this, error);
-            __classPrivateFieldGet(this, _AbstractChatCompletionRunner_rejectEndPromise, "f").call(this, error);
-            this._emit('end');
+            __classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_rejectConnectedPromise,
+              "f"
+            ).call(this, error);
+            __classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_rejectEndPromise,
+              "f"
+            ).call(this, error);
+            this._emit("end");
+          }
         }
-    }
-    _emitFinal() {
-        const completion = this._chatCompletions[this._chatCompletions.length - 1];
-        if (completion)
-            this._emit('finalChatCompletion', completion);
-        const finalMessage = this.messages[this.messages.length - 1];
-        if (finalMessage)
-            this._emit('finalMessage', finalMessage);
-        const finalContent = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalContent).call(this);
-        if (finalContent)
-            this._emit('finalContent', finalContent);
-        const finalFunctionCall = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalFunctionCall).call(this);
-        if (finalFunctionCall)
-            this._emit('finalFunctionCall', finalFunctionCall);
-        const finalFunctionCallResult = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalFunctionCallResult).call(this);
-        if (finalFunctionCallResult != null)
-            this._emit('finalFunctionCallResult', finalFunctionCallResult);
-        if (this._chatCompletions.some((c) => c.usage)) {
-            this._emit('totalUsage', __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_calculateTotalUsage).call(this));
+        _emitFinal() {
+          const completion =
+            this._chatCompletions[this._chatCompletions.length - 1];
+          if (completion) this._emit("finalChatCompletion", completion);
+          const finalMessage = this.messages[this.messages.length - 1];
+          if (finalMessage) this._emit("finalMessage", finalMessage);
+          const finalContent = __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_instances,
+            "m",
+            _AbstractChatCompletionRunner_getFinalContent
+          ).call(this);
+          if (finalContent) this._emit("finalContent", finalContent);
+          const finalFunctionCall = __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_instances,
+            "m",
+            _AbstractChatCompletionRunner_getFinalFunctionCall
+          ).call(this);
+          if (finalFunctionCall)
+            this._emit("finalFunctionCall", finalFunctionCall);
+          const finalFunctionCallResult = __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_instances,
+            "m",
+            _AbstractChatCompletionRunner_getFinalFunctionCallResult
+          ).call(this);
+          if (finalFunctionCallResult != null)
+            this._emit("finalFunctionCallResult", finalFunctionCallResult);
+          if (this._chatCompletions.some((c) => c.usage)) {
+            this._emit(
+              "totalUsage",
+              __classPrivateFieldGet(
+                this,
+                _AbstractChatCompletionRunner_instances,
+                "m",
+                _AbstractChatCompletionRunner_calculateTotalUsage
+              ).call(this)
+            );
+          }
         }
-    }
-    async _createChatCompletion(completions, params, options) {
-        const signal = options?.signal;
-        if (signal) {
-            if (signal.aborted)
-                this.controller.abort();
-            signal.addEventListener('abort', () => this.controller.abort());
+        async _createChatCompletion(completions, params, options) {
+          const signal = options?.signal;
+          if (signal) {
+            if (signal.aborted) this.controller.abort();
+            signal.addEventListener("abort", () => this.controller.abort());
+          }
+          __classPrivateFieldGet(
+            this,
+            _AbstractChatCompletionRunner_instances,
+            "m",
+            _AbstractChatCompletionRunner_validateParams
+          ).call(this, params);
+          const chatCompletion = await completions.create(
+            { ...params, stream: false },
+            { ...options, signal: this.controller.signal }
+          );
+          this._connected();
+          return this._addChatCompletion(chatCompletion);
         }
-        __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_validateParams).call(this, params);
-        const chatCompletion = await completions.create({ ...params, stream: false }, { ...options, signal: this.controller.signal });
-        this._connected();
-        return this._addChatCompletion(chatCompletion);
-    }
-    async _runChatCompletion(completions, params, options) {
-        for (const message of params.messages) {
+        async _runChatCompletion(completions, params, options) {
+          for (const message of params.messages) {
             this._addMessage(message, false);
+          }
+          return await this._createChatCompletion(completions, params, options);
         }
-        return await this._createChatCompletion(completions, params, options);
-    }
-    async _runFunctions(completions, params, options) {
-        const role = 'function';
-        const { function_call = 'auto', stream, ...restParams } = params;
-        const singleFunctionToCall = typeof function_call !== 'string' && function_call?.name;
-        const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {};
-        const functionsByName = {};
-        for (const f of params.functions) {
+        async _runFunctions(completions, params, options) {
+          const role = "function";
+          const { function_call = "auto", stream, ...restParams } = params;
+          const singleFunctionToCall =
+            typeof function_call !== "string" && function_call?.name;
+          const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } =
+            options || {};
+          const functionsByName = {};
+          for (const f of params.functions) {
             functionsByName[f.name || f.function.name] = f;
-        }
-        const functions = params.functions.map((f) => ({
+          }
+          const functions = params.functions.map((f) => ({
             name: f.name || f.function.name,
             parameters: f.parameters,
             description: f.description,
-        }));
-        for (const message of params.messages) {
+          }));
+          for (const message of params.messages) {
             this._addMessage(message, false);
-        }
-        for (let i = 0; i < maxChatCompletions; ++i) {
-            const chatCompletion = await this._createChatCompletion(completions, {
+          }
+          for (let i = 0; i < maxChatCompletions; ++i) {
+            const chatCompletion = await this._createChatCompletion(
+              completions,
+              {
                 ...restParams,
                 function_call,
                 functions,
                 messages: [...this.messages],
-            }, options);
+              },
+              options
+            );
             const message = chatCompletion.choices[0]?.message;
             if (!message) {
-                throw new error_1.OpenAIError(`missing message in ChatCompletion response`);
+              throw new error_1.OpenAIError(
+                `missing message in ChatCompletion response`
+              );
             }
-            if (!message.function_call)
-                return;
+            if (!message.function_call) return;
             const { name, arguments: args } = message.function_call;
             const fn = functionsByName[name];
             if (!fn) {
-                const content = `Invalid function_call: ${JSON.stringify(name)}. Available options are: ${functions
-                    .map((f) => JSON.stringify(f.name))
-                    .join(', ')}. Please try again`;
-                this._addMessage({ role, name, content });
-                continue;
-            }
-            else if (singleFunctionToCall && singleFunctionToCall !== name) {
-                const content = `Invalid function_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;
-                this._addMessage({ role, name, content });
-                continue;
+              const content = `Invalid function_call: ${JSON.stringify(
+                name
+              )}. Available options are: ${functions
+                .map((f) => JSON.stringify(f.name))
+                .join(", ")}. Please try again`;
+              this._addMessage({ role, name, content });
+              continue;
+            } else if (singleFunctionToCall && singleFunctionToCall !== name) {
+              const content = `Invalid function_call: ${JSON.stringify(
+                name
+              )}. ${JSON.stringify(
+                singleFunctionToCall
+              )} requested. Please try again`;
+              this._addMessage({ role, name, content });
+              continue;
             }
             let parsed;
             try {
-                parsed = (0, RunnableFunction_1.isRunnableFunctionWithParse)(fn) ? await fn.parse(args) : args;
-            }
-            catch (error) {
-                this._addMessage({
-                    role,
-                    name,
-                    content: error instanceof Error ? error.message : String(error),
-                });
-                continue;
+              parsed = (0, RunnableFunction_1.isRunnableFunctionWithParse)(fn)
+                ? await fn.parse(args)
+                : args;
+            } catch (error) {
+              this._addMessage({
+                role,
+                name,
+                content: error instanceof Error ? error.message : String(error),
+              });
+              continue;
             }
             // @ts-expect-error it can't rule out `never` type.
             const rawContent = await fn.function(parsed, this);
-            const content = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_stringifyFunctionCallResult).call(this, rawContent);
+            const content = __classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_instances,
+              "m",
+              _AbstractChatCompletionRunner_stringifyFunctionCallResult
+            ).call(this, rawContent);
             this._addMessage({ role, name, content });
-            if (singleFunctionToCall)
-                return;
+            if (singleFunctionToCall) return;
+          }
         }
-    }
-    async _runTools(completions, params, options) {
-        const role = 'tool';
-        const { tool_choice = 'auto', stream, ...restParams } = params;
-        const singleFunctionToCall = typeof tool_choice !== 'string' && tool_choice?.function?.name;
-        const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } = options || {};
-        const functionsByName = {};
-        for (const f of params.tools) {
-            if (f.type === 'function') {
-                functionsByName[f.function.name || f.function.function.name] = f.function;
+        async _runTools(completions, params, options) {
+          const role = "tool";
+          const { tool_choice = "auto", stream, ...restParams } = params;
+          const singleFunctionToCall =
+            typeof tool_choice !== "string" && tool_choice?.function?.name;
+          const { maxChatCompletions = DEFAULT_MAX_CHAT_COMPLETIONS } =
+            options || {};
+          const functionsByName = {};
+          for (const f of params.tools) {
+            if (f.type === "function") {
+              functionsByName[f.function.name || f.function.function.name] =
+                f.function;
             }
-        }
-        const tools = 'tools' in params ?
-            params.tools.map((t) => t.type === 'function' ?
-                {
-                    type: 'function',
-                    function: {
-                        name: t.function.name || t.function.function.name,
-                        parameters: t.function.parameters,
-                        description: t.function.description,
-                    },
-                }
-                : t)
-            : undefined;
-        for (const message of params.messages) {
+          }
+          const tools =
+            "tools" in params
+              ? params.tools.map((t) =>
+                  t.type === "function"
+                    ? {
+                        type: "function",
+                        function: {
+                          name: t.function.name || t.function.function.name,
+                          parameters: t.function.parameters,
+                          description: t.function.description,
+                        },
+                      }
+                    : t
+                )
+              : undefined;
+          for (const message of params.messages) {
             this._addMessage(message, false);
-        }
-        for (let i = 0; i < maxChatCompletions; ++i) {
-            const chatCompletion = await this._createChatCompletion(completions, {
+          }
+          for (let i = 0; i < maxChatCompletions; ++i) {
+            const chatCompletion = await this._createChatCompletion(
+              completions,
+              {
                 ...restParams,
                 tool_choice,
                 tools,
                 messages: [...this.messages],
-            }, options);
+              },
+              options
+            );
             const message = chatCompletion.choices[0]?.message;
             if (!message) {
-                throw new error_1.OpenAIError(`missing message in ChatCompletion response`);
+              throw new error_1.OpenAIError(
+                `missing message in ChatCompletion response`
+              );
             }
-            if (!message.tool_calls)
-                return;
+            if (!message.tool_calls) return;
             for (const tool_call of message.tool_calls) {
-                if (tool_call.type !== 'function')
-                    continue;
-                const tool_call_id = tool_call.id;
-                const { name, arguments: args } = tool_call.function;
-                const fn = functionsByName[name];
-                if (!fn) {
-                    const content = `Invalid tool_call: ${JSON.stringify(name)}. Available options are: ${tools
-                        .map((f) => JSON.stringify(f.function.name))
-                        .join(', ')}. Please try again`;
-                    this._addMessage({ role, tool_call_id, content });
-                    continue;
-                }
-                else if (singleFunctionToCall && singleFunctionToCall !== name) {
-                    const content = `Invalid tool_call: ${JSON.stringify(name)}. ${JSON.stringify(singleFunctionToCall)} requested. Please try again`;
-                    this._addMessage({ role, tool_call_id, content });
-                    continue;
-                }
-                let parsed;
-                try {
-                    parsed = (0, RunnableFunction_1.isRunnableFunctionWithParse)(fn) ? await fn.parse(args) : args;
-                }
-                catch (error) {
-                    const content = error instanceof Error ? error.message : String(error);
-                    this._addMessage({ role, tool_call_id, content });
-                    continue;
-                }
-                // @ts-expect-error it can't rule out `never` type.
-                const rawContent = await fn.function(parsed, this);
-                const content = __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_stringifyFunctionCallResult).call(this, rawContent);
+              if (tool_call.type !== "function") continue;
+              const tool_call_id = tool_call.id;
+              const { name, arguments: args } = tool_call.function;
+              const fn = functionsByName[name];
+              if (!fn) {
+                const content = `Invalid tool_call: ${JSON.stringify(
+                  name
+                )}. Available options are: ${tools
+                  .map((f) => JSON.stringify(f.function.name))
+                  .join(", ")}. Please try again`;
                 this._addMessage({ role, tool_call_id, content });
-                if (singleFunctionToCall)
-                    return;
-            }
-        }
-    }
-}
-exports.AbstractChatCompletionRunner = AbstractChatCompletionRunner;
-_AbstractChatCompletionRunner_connectedPromise = new WeakMap(), _AbstractChatCompletionRunner_resolveConnectedPromise = new WeakMap(), _AbstractChatCompletionRunner_rejectConnectedPromise = new WeakMap(), _AbstractChatCompletionRunner_endPromise = new WeakMap(), _AbstractChatCompletionRunner_resolveEndPromise = new WeakMap(), _AbstractChatCompletionRunner_rejectEndPromise = new WeakMap(), _AbstractChatCompletionRunner_listeners = new WeakMap(), _AbstractChatCompletionRunner_ended = new WeakMap(), _AbstractChatCompletionRunner_errored = new WeakMap(), _AbstractChatCompletionRunner_aborted = new WeakMap(), _AbstractChatCompletionRunner_catchingPromiseCreated = new WeakMap(), _AbstractChatCompletionRunner_handleError = new WeakMap(), _AbstractChatCompletionRunner_instances = new WeakSet(), _AbstractChatCompletionRunner_getFinalContent = function _AbstractChatCompletionRunner_getFinalContent() {
-    return __classPrivateFieldGet(this, _AbstractChatCompletionRunner_instances, "m", _AbstractChatCompletionRunner_getFinalMessage).call(this).content;
-}, _AbstractChatCompletionRunner_getFinalMessage = function _AbstractChatCompletionRunner_getFinalMessage() {
-    let i = this.messages.length;
-    while (i-- > 0) {
-        const message = this.messages[i];
-        if ((0, chatCompletionUtils_1.isAssistantMessage)(message)) {
-            return message;
-        }
-    }
-    throw new error_1.OpenAIError('stream ended without producing a ChatCompletionMessage with role=assistant');
-}, _AbstractChatCompletionRunner_getFinalFunctionCall = function _AbstractChatCompletionRunner_getFinalFunctionCall() {
-    for (let i = this.messages.length - 1; i >= 0; i--) {
-        const message = this.messages[i];
-        if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message?.function_call) {
-            return message.function_call;
-        }
-    }
-    return;
-}, _AbstractChatCompletionRunner_getFinalFunctionCallResult = function _AbstractChatCompletionRunner_getFinalFunctionCallResult() {
-    for (let i = this.messages.length - 1; i >= 0; i--) {
-        const message = this.messages[i];
-        if ((0, chatCompletionUtils_1.isFunctionMessage)(message) && message.content != null) {
-            return message.content;
-        }
-    }
-    return;
-}, _AbstractChatCompletionRunner_calculateTotalUsage = function _AbstractChatCompletionRunner_calculateTotalUsage() {
-    const total = {
-        completion_tokens: 0,
-        prompt_tokens: 0,
-        total_tokens: 0,
-    };
-    for (const { usage } of this._chatCompletions) {
-        if (usage) {
-            total.completion_tokens += usage.completion_tokens;
-            total.prompt_tokens += usage.prompt_tokens;
-            total.total_tokens += usage.total_tokens;
-        }
-    }
-    return total;
-}, _AbstractChatCompletionRunner_validateParams = function _AbstractChatCompletionRunner_validateParams(params) {
-    if (params.n != null && params.n > 1) {
-        throw new error_1.OpenAIError('ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.');
-    }
-}, _AbstractChatCompletionRunner_stringifyFunctionCallResult = function _AbstractChatCompletionRunner_stringifyFunctionCallResult(rawContent) {
-    return (typeof rawContent === 'string' ? rawContent
-        : rawContent === undefined ? 'undefined'
-            : JSON.stringify(rawContent));
-};
-//# sourceMappingURL=AbstractChatCompletionRunner.js.map
-
-/***/ }),
-
-/***/ 5575:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ChatCompletionRunner = void 0;
-const AbstractChatCompletionRunner_1 = __nccwpck_require__(8398);
-const chatCompletionUtils_1 = __nccwpck_require__(7858);
-class ChatCompletionRunner extends AbstractChatCompletionRunner_1.AbstractChatCompletionRunner {
-    static runFunctions(completions, params, options) {
-        const runner = new ChatCompletionRunner();
-        runner._run(() => runner._runFunctions(completions, params, options));
-        return runner;
-    }
-    static runTools(completions, params, options) {
-        const runner = new ChatCompletionRunner();
-        runner._run(() => runner._runTools(completions, params, options));
-        return runner;
-    }
-    _addMessage(message) {
-        super._addMessage(message);
-        if ((0, chatCompletionUtils_1.isAssistantMessage)(message) && message.content) {
-            this._emit('content', message.content);
-        }
-    }
-}
-exports.ChatCompletionRunner = ChatCompletionRunner;
-//# sourceMappingURL=ChatCompletionRunner.js.map
-
-/***/ }),
-
-/***/ 7823:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
-    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
-    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
-    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
-};
-var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
-    if (kind === "m") throw new TypeError("Private method is not writable");
-    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
-    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
-    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
-};
-var _ChatCompletionStream_instances, _ChatCompletionStream_currentChatCompletionSnapshot, _ChatCompletionStream_beginRequest, _ChatCompletionStream_addChunk, _ChatCompletionStream_endRequest, _ChatCompletionStream_accumulateChatCompletion;
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ChatCompletionStream = void 0;
-const error_1 = __nccwpck_require__(8905);
-const AbstractChatCompletionRunner_1 = __nccwpck_require__(8398);
-const streaming_1 = __nccwpck_require__(884);
-class ChatCompletionStream extends AbstractChatCompletionRunner_1.AbstractChatCompletionRunner {
-    constructor() {
-        super(...arguments);
-        _ChatCompletionStream_instances.add(this);
-        _ChatCompletionStream_currentChatCompletionSnapshot.set(this, void 0);
-    }
-    get currentChatCompletionSnapshot() {
-        return __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, "f");
-    }
-    /**
-     * Intended for use on the frontend, consuming a stream produced with
-     * `.toReadableStream()` on the backend.
-     *
-     * Note that messages sent to the model do not appear in `.on('message')`
-     * in this context.
-     */
-    static fromReadableStream(stream) {
-        const runner = new ChatCompletionStream();
-        runner._run(() => runner._fromReadableStream(stream));
-        return runner;
-    }
-    static createChatCompletion(completions, params, options) {
-        const runner = new ChatCompletionStream();
-        runner._run(() => runner._runChatCompletion(completions, { ...params, stream: true }, { ...options, headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'stream' } }));
-        return runner;
-    }
-    async _createChatCompletion(completions, params, options) {
-        const signal = options?.signal;
-        if (signal) {
-            if (signal.aborted)
-                this.controller.abort();
-            signal.addEventListener('abort', () => this.controller.abort());
-        }
-        __classPrivateFieldGet(this, _ChatCompletionStream_instances, "m", _ChatCompletionStream_beginRequest).call(this);
-        const stream = await completions.create({ ...params, stream: true }, { ...options, signal: this.controller.signal });
-        this._connected();
-        for await (const chunk of stream) {
-            __classPrivateFieldGet(this, _ChatCompletionStream_instances, "m", _ChatCompletionStream_addChunk).call(this, chunk);
-        }
-        if (stream.controller.signal?.aborted) {
-            throw new error_1.APIUserAbortError();
-        }
-        return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, "m", _ChatCompletionStream_endRequest).call(this));
-    }
-    async _fromReadableStream(readableStream, options) {
-        const signal = options?.signal;
-        if (signal) {
-            if (signal.aborted)
-                this.controller.abort();
-            signal.addEventListener('abort', () => this.controller.abort());
-        }
-        __classPrivateFieldGet(this, _ChatCompletionStream_instances, "m", _ChatCompletionStream_beginRequest).call(this);
-        this._connected();
-        const stream = streaming_1.Stream.fromReadableStream(readableStream, this.controller);
-        let chatId;
-        for await (const chunk of stream) {
-            if (chatId && chatId !== chunk.id) {
-                // A new request has been made.
-                this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, "m", _ChatCompletionStream_endRequest).call(this));
-            }
-            __classPrivateFieldGet(this, _ChatCompletionStream_instances, "m", _ChatCompletionStream_addChunk).call(this, chunk);
-            chatId = chunk.id;
-        }
-        if (stream.controller.signal?.aborted) {
-            throw new error_1.APIUserAbortError();
-        }
-        return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, "m", _ChatCompletionStream_endRequest).call(this));
-    }
-    [(_ChatCompletionStream_currentChatCompletionSnapshot = new WeakMap(), _ChatCompletionStream_instances = new WeakSet(), _ChatCompletionStream_beginRequest = function _ChatCompletionStream_beginRequest() {
-        if (this.ended)
-            return;
-        __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, "f");
-    }, _ChatCompletionStream_addChunk = function _ChatCompletionStream_addChunk(chunk) {
-        if (this.ended)
-            return;
-        const completion = __classPrivateFieldGet(this, _ChatCompletionStream_instances, "m", _ChatCompletionStream_accumulateChatCompletion).call(this, chunk);
-        this._emit('chunk', chunk, completion);
-        const delta = chunk.choices[0]?.delta?.content;
-        const snapshot = completion.choices[0]?.message;
-        if (delta != null && snapshot?.role === 'assistant' && snapshot?.content) {
-            this._emit('content', delta, snapshot.content);
-        }
-    }, _ChatCompletionStream_endRequest = function _ChatCompletionStream_endRequest() {
-        if (this.ended) {
-            throw new error_1.OpenAIError(`stream has ended, this shouldn't happen`);
-        }
-        const snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, "f");
-        if (!snapshot) {
-            throw new error_1.OpenAIError(`request ended without sending any chunks`);
-        }
-        __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, undefined, "f");
-        return finalizeChatCompletion(snapshot);
-    }, _ChatCompletionStream_accumulateChatCompletion = function _ChatCompletionStream_accumulateChatCompletion(chunk) {
-        var _a, _b;
-        let snapshot = __classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, "f");
-        const { choices, ...rest } = chunk;
-        if (!snapshot) {
-            snapshot = __classPrivateFieldSet(this, _ChatCompletionStream_currentChatCompletionSnapshot, {
-                ...rest,
-                choices: [],
-            }, "f");
-        }
-        else {
-            Object.assign(snapshot, rest);
-        }
-        for (const { delta, finish_reason, index, ...other } of chunk.choices) {
-            let choice = snapshot.choices[index];
-            if (!choice) {
-                snapshot.choices[index] = { finish_reason, index, message: delta, ...other };
                 continue;
+              } else if (
+                singleFunctionToCall &&
+                singleFunctionToCall !== name
+              ) {
+                const content = `Invalid tool_call: ${JSON.stringify(
+                  name
+                )}. ${JSON.stringify(
+                  singleFunctionToCall
+                )} requested. Please try again`;
+                this._addMessage({ role, tool_call_id, content });
+                continue;
+              }
+              let parsed;
+              try {
+                parsed = (0, RunnableFunction_1.isRunnableFunctionWithParse)(fn)
+                  ? await fn.parse(args)
+                  : args;
+              } catch (error) {
+                const content =
+                  error instanceof Error ? error.message : String(error);
+                this._addMessage({ role, tool_call_id, content });
+                continue;
+              }
+              // @ts-expect-error it can't rule out `never` type.
+              const rawContent = await fn.function(parsed, this);
+              const content = __classPrivateFieldGet(
+                this,
+                _AbstractChatCompletionRunner_instances,
+                "m",
+                _AbstractChatCompletionRunner_stringifyFunctionCallResult
+              ).call(this, rawContent);
+              this._addMessage({ role, tool_call_id, content });
+              if (singleFunctionToCall) return;
             }
-            if (finish_reason)
-                choice.finish_reason = finish_reason;
-            Object.assign(choice, other);
-            if (!delta)
-                continue; // Shouldn't happen; just in case.
-            const { content, function_call, role, tool_calls } = delta;
-            if (content)
-                choice.message.content = (choice.message.content || '') + content;
-            if (role)
-                choice.message.role = role;
-            if (function_call) {
-                if (!choice.message.function_call) {
-                    choice.message.function_call = function_call;
-                }
-                else {
-                    if (function_call.name)
-                        choice.message.function_call.name = function_call.name;
-                    if (function_call.arguments) {
-                        (_a = choice.message.function_call).arguments ?? (_a.arguments = '');
-                        choice.message.function_call.arguments += function_call.arguments;
-                    }
-                }
-            }
-            if (tool_calls) {
-                if (!choice.message.tool_calls)
-                    choice.message.tool_calls = [];
-                for (const { index, id, type, function: fn } of tool_calls) {
-                    const tool_call = ((_b = choice.message.tool_calls)[index] ?? (_b[index] = {}));
-                    if (id)
-                        tool_call.id = id;
-                    if (type)
-                        tool_call.type = type;
-                    if (fn)
-                        tool_call.function ?? (tool_call.function = { arguments: '' });
-                    if (fn?.name)
-                        tool_call.function.name = fn.name;
-                    if (fn?.arguments)
-                        tool_call.function.arguments += fn.arguments;
-                }
-            }
+          }
         }
-        return snapshot;
-    }, Symbol.asyncIterator)]() {
-        const pushQueue = [];
-        const readQueue = [];
-        let done = false;
-        this.on('chunk', (chunk) => {
+      }
+      exports.AbstractChatCompletionRunner = AbstractChatCompletionRunner;
+      (_AbstractChatCompletionRunner_connectedPromise = new WeakMap()),
+        (_AbstractChatCompletionRunner_resolveConnectedPromise = new WeakMap()),
+        (_AbstractChatCompletionRunner_rejectConnectedPromise = new WeakMap()),
+        (_AbstractChatCompletionRunner_endPromise = new WeakMap()),
+        (_AbstractChatCompletionRunner_resolveEndPromise = new WeakMap()),
+        (_AbstractChatCompletionRunner_rejectEndPromise = new WeakMap()),
+        (_AbstractChatCompletionRunner_listeners = new WeakMap()),
+        (_AbstractChatCompletionRunner_ended = new WeakMap()),
+        (_AbstractChatCompletionRunner_errored = new WeakMap()),
+        (_AbstractChatCompletionRunner_aborted = new WeakMap()),
+        (_AbstractChatCompletionRunner_catchingPromiseCreated = new WeakMap()),
+        (_AbstractChatCompletionRunner_handleError = new WeakMap()),
+        (_AbstractChatCompletionRunner_instances = new WeakSet()),
+        (_AbstractChatCompletionRunner_getFinalContent =
+          function _AbstractChatCompletionRunner_getFinalContent() {
+            return __classPrivateFieldGet(
+              this,
+              _AbstractChatCompletionRunner_instances,
+              "m",
+              _AbstractChatCompletionRunner_getFinalMessage
+            ).call(this).content;
+          }),
+        (_AbstractChatCompletionRunner_getFinalMessage =
+          function _AbstractChatCompletionRunner_getFinalMessage() {
+            let i = this.messages.length;
+            while (i-- > 0) {
+              const message = this.messages[i];
+              if ((0, chatCompletionUtils_1.isAssistantMessage)(message)) {
+                return message;
+              }
+            }
+            throw new error_1.OpenAIError(
+              "stream ended without producing a ChatCompletionMessage with role=assistant"
+            );
+          }),
+        (_AbstractChatCompletionRunner_getFinalFunctionCall =
+          function _AbstractChatCompletionRunner_getFinalFunctionCall() {
+            for (let i = this.messages.length - 1; i >= 0; i--) {
+              const message = this.messages[i];
+              if (
+                (0, chatCompletionUtils_1.isAssistantMessage)(message) &&
+                message?.function_call
+              ) {
+                return message.function_call;
+              }
+            }
+            return;
+          }),
+        (_AbstractChatCompletionRunner_getFinalFunctionCallResult =
+          function _AbstractChatCompletionRunner_getFinalFunctionCallResult() {
+            for (let i = this.messages.length - 1; i >= 0; i--) {
+              const message = this.messages[i];
+              if (
+                (0, chatCompletionUtils_1.isFunctionMessage)(message) &&
+                message.content != null
+              ) {
+                return message.content;
+              }
+            }
+            return;
+          }),
+        (_AbstractChatCompletionRunner_calculateTotalUsage =
+          function _AbstractChatCompletionRunner_calculateTotalUsage() {
+            const total = {
+              completion_tokens: 0,
+              prompt_tokens: 0,
+              total_tokens: 0,
+            };
+            for (const { usage } of this._chatCompletions) {
+              if (usage) {
+                total.completion_tokens += usage.completion_tokens;
+                total.prompt_tokens += usage.prompt_tokens;
+                total.total_tokens += usage.total_tokens;
+              }
+            }
+            return total;
+          }),
+        (_AbstractChatCompletionRunner_validateParams =
+          function _AbstractChatCompletionRunner_validateParams(params) {
+            if (params.n != null && params.n > 1) {
+              throw new error_1.OpenAIError(
+                "ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly."
+              );
+            }
+          }),
+        (_AbstractChatCompletionRunner_stringifyFunctionCallResult =
+          function _AbstractChatCompletionRunner_stringifyFunctionCallResult(
+            rawContent
+          ) {
+            return typeof rawContent === "string"
+              ? rawContent
+              : rawContent === undefined
+              ? "undefined"
+              : JSON.stringify(rawContent);
+          });
+      //# sourceMappingURL=AbstractChatCompletionRunner.js.map
+
+      /***/
+    },
+
+    /***/ 5575: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.ChatCompletionRunner = void 0;
+      const AbstractChatCompletionRunner_1 = __nccwpck_require__(8398);
+      const chatCompletionUtils_1 = __nccwpck_require__(7858);
+      class ChatCompletionRunner extends AbstractChatCompletionRunner_1.AbstractChatCompletionRunner {
+        static runFunctions(completions, params, options) {
+          const runner = new ChatCompletionRunner();
+          runner._run(() => runner._runFunctions(completions, params, options));
+          return runner;
+        }
+        static runTools(completions, params, options) {
+          const runner = new ChatCompletionRunner();
+          runner._run(() => runner._runTools(completions, params, options));
+          return runner;
+        }
+        _addMessage(message) {
+          super._addMessage(message);
+          if (
+            (0, chatCompletionUtils_1.isAssistantMessage)(message) &&
+            message.content
+          ) {
+            this._emit("content", message.content);
+          }
+        }
+      }
+      exports.ChatCompletionRunner = ChatCompletionRunner;
+      //# sourceMappingURL=ChatCompletionRunner.js.map
+
+      /***/
+    },
+
+    /***/ 7823: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
+
+      var __classPrivateFieldGet =
+        (this && this.__classPrivateFieldGet) ||
+        function (receiver, state, kind, f) {
+          if (kind === "a" && !f)
+            throw new TypeError(
+              "Private accessor was defined without a getter"
+            );
+          if (
+            typeof state === "function"
+              ? receiver !== state || !f
+              : !state.has(receiver)
+          )
+            throw new TypeError(
+              "Cannot read private member from an object whose class did not declare it"
+            );
+          return kind === "m"
+            ? f
+            : kind === "a"
+            ? f.call(receiver)
+            : f
+            ? f.value
+            : state.get(receiver);
+        };
+      var __classPrivateFieldSet =
+        (this && this.__classPrivateFieldSet) ||
+        function (receiver, state, value, kind, f) {
+          if (kind === "m")
+            throw new TypeError("Private method is not writable");
+          if (kind === "a" && !f)
+            throw new TypeError(
+              "Private accessor was defined without a setter"
+            );
+          if (
+            typeof state === "function"
+              ? receiver !== state || !f
+              : !state.has(receiver)
+          )
+            throw new TypeError(
+              "Cannot write private member to an object whose class did not declare it"
+            );
+          return (
+            kind === "a"
+              ? f.call(receiver, value)
+              : f
+              ? (f.value = value)
+              : state.set(receiver, value),
+            value
+          );
+        };
+      var _ChatCompletionStream_instances,
+        _ChatCompletionStream_currentChatCompletionSnapshot,
+        _ChatCompletionStream_beginRequest,
+        _ChatCompletionStream_addChunk,
+        _ChatCompletionStream_endRequest,
+        _ChatCompletionStream_accumulateChatCompletion;
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.ChatCompletionStream = void 0;
+      const error_1 = __nccwpck_require__(8905);
+      const AbstractChatCompletionRunner_1 = __nccwpck_require__(8398);
+      const streaming_1 = __nccwpck_require__(884);
+      class ChatCompletionStream extends AbstractChatCompletionRunner_1.AbstractChatCompletionRunner {
+        constructor() {
+          super(...arguments);
+          _ChatCompletionStream_instances.add(this);
+          _ChatCompletionStream_currentChatCompletionSnapshot.set(this, void 0);
+        }
+        get currentChatCompletionSnapshot() {
+          return __classPrivateFieldGet(
+            this,
+            _ChatCompletionStream_currentChatCompletionSnapshot,
+            "f"
+          );
+        }
+        /**
+         * Intended for use on the frontend, consuming a stream produced with
+         * `.toReadableStream()` on the backend.
+         *
+         * Note that messages sent to the model do not appear in `.on('message')`
+         * in this context.
+         */
+        static fromReadableStream(stream) {
+          const runner = new ChatCompletionStream();
+          runner._run(() => runner._fromReadableStream(stream));
+          return runner;
+        }
+        static createChatCompletion(completions, params, options) {
+          const runner = new ChatCompletionStream();
+          runner._run(() =>
+            runner._runChatCompletion(
+              completions,
+              { ...params, stream: true },
+              {
+                ...options,
+                headers: {
+                  ...options?.headers,
+                  "X-Stainless-Helper-Method": "stream",
+                },
+              }
+            )
+          );
+          return runner;
+        }
+        async _createChatCompletion(completions, params, options) {
+          const signal = options?.signal;
+          if (signal) {
+            if (signal.aborted) this.controller.abort();
+            signal.addEventListener("abort", () => this.controller.abort());
+          }
+          __classPrivateFieldGet(
+            this,
+            _ChatCompletionStream_instances,
+            "m",
+            _ChatCompletionStream_beginRequest
+          ).call(this);
+          const stream = await completions.create(
+            { ...params, stream: true },
+            { ...options, signal: this.controller.signal }
+          );
+          this._connected();
+          for await (const chunk of stream) {
+            __classPrivateFieldGet(
+              this,
+              _ChatCompletionStream_instances,
+              "m",
+              _ChatCompletionStream_addChunk
+            ).call(this, chunk);
+          }
+          if (stream.controller.signal?.aborted) {
+            throw new error_1.APIUserAbortError();
+          }
+          return this._addChatCompletion(
+            __classPrivateFieldGet(
+              this,
+              _ChatCompletionStream_instances,
+              "m",
+              _ChatCompletionStream_endRequest
+            ).call(this)
+          );
+        }
+        async _fromReadableStream(readableStream, options) {
+          const signal = options?.signal;
+          if (signal) {
+            if (signal.aborted) this.controller.abort();
+            signal.addEventListener("abort", () => this.controller.abort());
+          }
+          __classPrivateFieldGet(
+            this,
+            _ChatCompletionStream_instances,
+            "m",
+            _ChatCompletionStream_beginRequest
+          ).call(this);
+          this._connected();
+          const stream = streaming_1.Stream.fromReadableStream(
+            readableStream,
+            this.controller
+          );
+          let chatId;
+          for await (const chunk of stream) {
+            if (chatId && chatId !== chunk.id) {
+              // A new request has been made.
+              this._addChatCompletion(
+                __classPrivateFieldGet(
+                  this,
+                  _ChatCompletionStream_instances,
+                  "m",
+                  _ChatCompletionStream_endRequest
+                ).call(this)
+              );
+            }
+            __classPrivateFieldGet(
+              this,
+              _ChatCompletionStream_instances,
+              "m",
+              _ChatCompletionStream_addChunk
+            ).call(this, chunk);
+            chatId = chunk.id;
+          }
+          if (stream.controller.signal?.aborted) {
+            throw new error_1.APIUserAbortError();
+          }
+          return this._addChatCompletion(
+            __classPrivateFieldGet(
+              this,
+              _ChatCompletionStream_instances,
+              "m",
+              _ChatCompletionStream_endRequest
+            ).call(this)
+          );
+        }
+        [((_ChatCompletionStream_currentChatCompletionSnapshot = new WeakMap()),
+        (_ChatCompletionStream_instances = new WeakSet()),
+        (_ChatCompletionStream_beginRequest =
+          function _ChatCompletionStream_beginRequest() {
+            if (this.ended) return;
+            __classPrivateFieldSet(
+              this,
+              _ChatCompletionStream_currentChatCompletionSnapshot,
+              undefined,
+              "f"
+            );
+          }),
+        (_ChatCompletionStream_addChunk =
+          function _ChatCompletionStream_addChunk(chunk) {
+            if (this.ended) return;
+            const completion = __classPrivateFieldGet(
+              this,
+              _ChatCompletionStream_instances,
+              "m",
+              _ChatCompletionStream_accumulateChatCompletion
+            ).call(this, chunk);
+            this._emit("chunk", chunk, completion);
+            const delta = chunk.choices[0]?.delta?.content;
+            const snapshot = completion.choices[0]?.message;
+            if (
+              delta != null &&
+              snapshot?.role === "assistant" &&
+              snapshot?.content
+            ) {
+              this._emit("content", delta, snapshot.content);
+            }
+          }),
+        (_ChatCompletionStream_endRequest =
+          function _ChatCompletionStream_endRequest() {
+            if (this.ended) {
+              throw new error_1.OpenAIError(
+                `stream has ended, this shouldn't happen`
+              );
+            }
+            const snapshot = __classPrivateFieldGet(
+              this,
+              _ChatCompletionStream_currentChatCompletionSnapshot,
+              "f"
+            );
+            if (!snapshot) {
+              throw new error_1.OpenAIError(
+                `request ended without sending any chunks`
+              );
+            }
+            __classPrivateFieldSet(
+              this,
+              _ChatCompletionStream_currentChatCompletionSnapshot,
+              undefined,
+              "f"
+            );
+            return finalizeChatCompletion(snapshot);
+          }),
+        (_ChatCompletionStream_accumulateChatCompletion =
+          function _ChatCompletionStream_accumulateChatCompletion(chunk) {
+            var _a, _b;
+            let snapshot = __classPrivateFieldGet(
+              this,
+              _ChatCompletionStream_currentChatCompletionSnapshot,
+              "f"
+            );
+            const { choices, ...rest } = chunk;
+            if (!snapshot) {
+              snapshot = __classPrivateFieldSet(
+                this,
+                _ChatCompletionStream_currentChatCompletionSnapshot,
+                {
+                  ...rest,
+                  choices: [],
+                },
+                "f"
+              );
+            } else {
+              Object.assign(snapshot, rest);
+            }
+            for (const {
+              delta,
+              finish_reason,
+              index,
+              ...other
+            } of chunk.choices) {
+              let choice = snapshot.choices[index];
+              if (!choice) {
+                snapshot.choices[index] = {
+                  finish_reason,
+                  index,
+                  message: delta,
+                  ...other,
+                };
+                continue;
+              }
+              if (finish_reason) choice.finish_reason = finish_reason;
+              Object.assign(choice, other);
+              if (!delta) continue; // Shouldn't happen; just in case.
+              const { content, function_call, role, tool_calls } = delta;
+              if (content)
+                choice.message.content =
+                  (choice.message.content || "") + content;
+              if (role) choice.message.role = role;
+              if (function_call) {
+                if (!choice.message.function_call) {
+                  choice.message.function_call = function_call;
+                } else {
+                  if (function_call.name)
+                    choice.message.function_call.name = function_call.name;
+                  if (function_call.arguments) {
+                    (_a = choice.message.function_call).arguments ??
+                      (_a.arguments = "");
+                    choice.message.function_call.arguments +=
+                      function_call.arguments;
+                  }
+                }
+              }
+              if (tool_calls) {
+                if (!choice.message.tool_calls) choice.message.tool_calls = [];
+                for (const { index, id, type, function: fn } of tool_calls) {
+                  const tool_call =
+                    (_b = choice.message.tool_calls)[index] ?? (_b[index] = {});
+                  if (id) tool_call.id = id;
+                  if (type) tool_call.type = type;
+                  if (fn)
+                    tool_call.function ??
+                      (tool_call.function = { arguments: "" });
+                  if (fn?.name) tool_call.function.name = fn.name;
+                  if (fn?.arguments)
+                    tool_call.function.arguments += fn.arguments;
+                }
+              }
+            }
+            return snapshot;
+          }),
+        Symbol.asyncIterator)]() {
+          const pushQueue = [];
+          const readQueue = [];
+          let done = false;
+          this.on("chunk", (chunk) => {
             const reader = readQueue.shift();
             if (reader) {
-                reader(chunk);
+              reader(chunk);
+            } else {
+              pushQueue.push(chunk);
             }
-            else {
-                pushQueue.push(chunk);
-            }
-        });
-        this.on('end', () => {
+          });
+          this.on("end", () => {
             done = true;
             for (const reader of readQueue) {
-                reader(undefined);
+              reader(undefined);
             }
             readQueue.length = 0;
-        });
-        return {
+          });
+          return {
             next: async () => {
-                if (!pushQueue.length) {
-                    if (done) {
-                        return { value: undefined, done: true };
-                    }
-                    return new Promise((resolve) => readQueue.push(resolve)).then((chunk) => (chunk ? { value: chunk, done: false } : { value: undefined, done: true }));
+              if (!pushQueue.length) {
+                if (done) {
+                  return { value: undefined, done: true };
                 }
-                const chunk = pushQueue.shift();
-                return { value: chunk, done: false };
+                return new Promise((resolve) => readQueue.push(resolve)).then(
+                  (chunk) =>
+                    chunk
+                      ? { value: chunk, done: false }
+                      : { value: undefined, done: true }
+                );
+              }
+              const chunk = pushQueue.shift();
+              return { value: chunk, done: false };
             },
-        };
-    }
-    toReadableStream() {
-        const stream = new streaming_1.Stream(this[Symbol.asyncIterator].bind(this), this.controller);
-        return stream.toReadableStream();
-    }
-}
-exports.ChatCompletionStream = ChatCompletionStream;
-function finalizeChatCompletion(snapshot) {
-    const { id, choices, created, model } = snapshot;
-    return {
-        id,
-        choices: choices.map(({ message, finish_reason, index }) => {
+          };
+        }
+        toReadableStream() {
+          const stream = new streaming_1.Stream(
+            this[Symbol.asyncIterator].bind(this),
+            this.controller
+          );
+          return stream.toReadableStream();
+        }
+      }
+      exports.ChatCompletionStream = ChatCompletionStream;
+      function finalizeChatCompletion(snapshot) {
+        const { id, choices, created, model } = snapshot;
+        return {
+          id,
+          choices: choices.map(({ message, finish_reason, index }) => {
             if (!finish_reason)
-                throw new error_1.OpenAIError(`missing finish_reason for choice ${index}`);
+              throw new error_1.OpenAIError(
+                `missing finish_reason for choice ${index}`
+              );
             const { content = null, function_call, tool_calls } = message;
             const role = message.role; // this is what we expect; in theory it could be different which would make our types a slight lie but would be fine.
             if (!role)
-                throw new error_1.OpenAIError(`missing role for choice ${index}`);
+              throw new error_1.OpenAIError(`missing role for choice ${index}`);
             if (function_call) {
-                const { arguments: args, name } = function_call;
-                if (args == null)
-                    throw new error_1.OpenAIError(`missing function_call.arguments for choice ${index}`);
-                if (!name)
-                    throw new error_1.OpenAIError(`missing function_call.name for choice ${index}`);
-                return { message: { content, function_call: { arguments: args, name }, role }, finish_reason, index };
+              const { arguments: args, name } = function_call;
+              if (args == null)
+                throw new error_1.OpenAIError(
+                  `missing function_call.arguments for choice ${index}`
+                );
+              if (!name)
+                throw new error_1.OpenAIError(
+                  `missing function_call.name for choice ${index}`
+                );
+              return {
+                message: {
+                  content,
+                  function_call: { arguments: args, name },
+                  role,
+                },
+                finish_reason,
+                index,
+              };
             }
             if (tool_calls) {
-                return {
-                    index,
-                    finish_reason,
-                    message: {
-                        role,
-                        content,
-                        tool_calls: tool_calls.map((tool_call, i) => {
-                            const { function: fn, type, id } = tool_call;
-                            const { arguments: args, name } = fn || {};
-                            if (id == null)
-                                throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].id\n${str(snapshot)}`);
-                            if (type == null)
-                                throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].type\n${str(snapshot)}`);
-                            if (name == null)
-                                throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].function.name\n${str(snapshot)}`);
-                            if (args == null)
-                                throw new error_1.OpenAIError(`missing choices[${index}].tool_calls[${i}].function.arguments\n${str(snapshot)}`);
-                            return { id, type, function: { name, arguments: args } };
-                        }),
-                    },
-                };
+              return {
+                index,
+                finish_reason,
+                message: {
+                  role,
+                  content,
+                  tool_calls: tool_calls.map((tool_call, i) => {
+                    const { function: fn, type, id } = tool_call;
+                    const { arguments: args, name } = fn || {};
+                    if (id == null)
+                      throw new error_1.OpenAIError(
+                        `missing choices[${index}].tool_calls[${i}].id\n${str(
+                          snapshot
+                        )}`
+                      );
+                    if (type == null)
+                      throw new error_1.OpenAIError(
+                        `missing choices[${index}].tool_calls[${i}].type\n${str(
+                          snapshot
+                        )}`
+                      );
+                    if (name == null)
+                      throw new error_1.OpenAIError(
+                        `missing choices[${index}].tool_calls[${i}].function.name\n${str(
+                          snapshot
+                        )}`
+                      );
+                    if (args == null)
+                      throw new error_1.OpenAIError(
+                        `missing choices[${index}].tool_calls[${i}].function.arguments\n${str(
+                          snapshot
+                        )}`
+                      );
+                    return { id, type, function: { name, arguments: args } };
+                  }),
+                },
+              };
             }
-            return { message: { content: content, role }, finish_reason, index };
-        }),
-        created,
-        model,
-        object: 'chat.completion',
-    };
-}
-function str(x) {
-    return JSON.stringify(x);
-}
-//# sourceMappingURL=ChatCompletionStream.js.map
+            return {
+              message: { content: content, role },
+              finish_reason,
+              index,
+            };
+          }),
+          created,
+          model,
+          object: "chat.completion",
+        };
+      }
+      function str(x) {
+        return JSON.stringify(x);
+      }
+      //# sourceMappingURL=ChatCompletionStream.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 794:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+    /***/ 794: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
 
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ChatCompletionStreamingRunner = void 0;
-const ChatCompletionStream_1 = __nccwpck_require__(7823);
-class ChatCompletionStreamingRunner extends ChatCompletionStream_1.ChatCompletionStream {
-    static fromReadableStream(stream) {
-        const runner = new ChatCompletionStreamingRunner();
-        runner._run(() => runner._fromReadableStream(stream));
-        return runner;
-    }
-    static runFunctions(completions, params, options) {
-        const runner = new ChatCompletionStreamingRunner();
-        runner._run(() => runner._runFunctions(completions, params, {
-            ...options,
-            headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runFunctions' },
-        }));
-        return runner;
-    }
-    static runTools(completions, params, options) {
-        const runner = new ChatCompletionStreamingRunner();
-        runner._run(() => runner._runTools(completions, params, {
-            ...options,
-            headers: { ...options?.headers, 'X-Stainless-Helper-Method': 'runTools' },
-        }));
-        return runner;
-    }
-}
-exports.ChatCompletionStreamingRunner = ChatCompletionStreamingRunner;
-//# sourceMappingURL=ChatCompletionStreamingRunner.js.map
-
-/***/ }),
-
-/***/ 5464:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ParsingFunction = exports.isRunnableFunctionWithParse = void 0;
-function isRunnableFunctionWithParse(fn) {
-    return typeof fn.parse === 'function';
-}
-exports.isRunnableFunctionWithParse = isRunnableFunctionWithParse;
-/**
- * This is helper class for passing a `function` and `parse` where the `function`
- * argument type matches the `parse` return type.
- */
-class ParsingFunction {
-    constructor(input) {
-        this.function = input.function;
-        this.parse = input.parse;
-        this.parameters = input.parameters;
-        this.description = input.description;
-        this.name = input.name;
-    }
-}
-exports.ParsingFunction = ParsingFunction;
-//# sourceMappingURL=RunnableFunction.js.map
-
-/***/ }),
-
-/***/ 7858:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.isPresent = exports.isToolMessage = exports.isFunctionMessage = exports.isAssistantMessage = void 0;
-const isAssistantMessage = (message) => {
-    return message?.role === 'assistant';
-};
-exports.isAssistantMessage = isAssistantMessage;
-const isFunctionMessage = (message) => {
-    return message?.role === 'function';
-};
-exports.isFunctionMessage = isFunctionMessage;
-const isToolMessage = (message) => {
-    return message?.role === 'tool';
-};
-exports.isToolMessage = isToolMessage;
-function isPresent(obj) {
-    return obj != null;
-}
-exports.isPresent = isPresent;
-//# sourceMappingURL=chatCompletionUtils.js.map
-
-/***/ }),
-
-/***/ 7401:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.CursorPage = exports.Page = void 0;
-const core_1 = __nccwpck_require__(1798);
-/**
- * Note: no pagination actually occurs yet, this is for forwards-compatibility.
- */
-class Page extends core_1.AbstractPage {
-    constructor(client, response, body, options) {
-        super(client, response, body, options);
-        this.data = body.data;
-        this.object = body.object;
-    }
-    getPaginatedItems() {
-        return this.data;
-    }
-    // @deprecated Please use `nextPageInfo()` instead
-    /**
-     * This page represents a response that isn't actually paginated at the API level
-     * so there will never be any next page params.
-     */
-    nextPageParams() {
-        return null;
-    }
-    nextPageInfo() {
-        return null;
-    }
-}
-exports.Page = Page;
-class CursorPage extends core_1.AbstractPage {
-    constructor(client, response, body, options) {
-        super(client, response, body, options);
-        this.data = body.data;
-    }
-    getPaginatedItems() {
-        return this.data;
-    }
-    // @deprecated Please use `nextPageInfo()` instead
-    nextPageParams() {
-        const info = this.nextPageInfo();
-        if (!info)
-            return null;
-        if ('params' in info)
-            return info.params;
-        const params = Object.fromEntries(info.url.searchParams);
-        if (!Object.keys(params).length)
-            return null;
-        return params;
-    }
-    nextPageInfo() {
-        if (!this.data?.length) {
-            return null;
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.ChatCompletionStreamingRunner = void 0;
+      const ChatCompletionStream_1 = __nccwpck_require__(7823);
+      class ChatCompletionStreamingRunner extends ChatCompletionStream_1.ChatCompletionStream {
+        static fromReadableStream(stream) {
+          const runner = new ChatCompletionStreamingRunner();
+          runner._run(() => runner._fromReadableStream(stream));
+          return runner;
         }
-        const next = this.data[this.data.length - 1]?.id;
-        if (!next)
+        static runFunctions(completions, params, options) {
+          const runner = new ChatCompletionStreamingRunner();
+          runner._run(() =>
+            runner._runFunctions(completions, params, {
+              ...options,
+              headers: {
+                ...options?.headers,
+                "X-Stainless-Helper-Method": "runFunctions",
+              },
+            })
+          );
+          return runner;
+        }
+        static runTools(completions, params, options) {
+          const runner = new ChatCompletionStreamingRunner();
+          runner._run(() =>
+            runner._runTools(completions, params, {
+              ...options,
+              headers: {
+                ...options?.headers,
+                "X-Stainless-Helper-Method": "runTools",
+              },
+            })
+          );
+          return runner;
+        }
+      }
+      exports.ChatCompletionStreamingRunner = ChatCompletionStreamingRunner;
+      //# sourceMappingURL=ChatCompletionStreamingRunner.js.map
+
+      /***/
+    },
+
+    /***/ 5464: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.ParsingFunction = exports.isRunnableFunctionWithParse = void 0;
+      function isRunnableFunctionWithParse(fn) {
+        return typeof fn.parse === "function";
+      }
+      exports.isRunnableFunctionWithParse = isRunnableFunctionWithParse;
+      /**
+       * This is helper class for passing a `function` and `parse` where the `function`
+       * argument type matches the `parse` return type.
+       */
+      class ParsingFunction {
+        constructor(input) {
+          this.function = input.function;
+          this.parse = input.parse;
+          this.parameters = input.parameters;
+          this.description = input.description;
+          this.name = input.name;
+        }
+      }
+      exports.ParsingFunction = ParsingFunction;
+      //# sourceMappingURL=RunnableFunction.js.map
+
+      /***/
+    },
+
+    /***/ 7858: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.isPresent =
+        exports.isToolMessage =
+        exports.isFunctionMessage =
+        exports.isAssistantMessage =
+          void 0;
+      const isAssistantMessage = (message) => {
+        return message?.role === "assistant";
+      };
+      exports.isAssistantMessage = isAssistantMessage;
+      const isFunctionMessage = (message) => {
+        return message?.role === "function";
+      };
+      exports.isFunctionMessage = isFunctionMessage;
+      const isToolMessage = (message) => {
+        return message?.role === "tool";
+      };
+      exports.isToolMessage = isToolMessage;
+      function isPresent(obj) {
+        return obj != null;
+      }
+      exports.isPresent = isPresent;
+      //# sourceMappingURL=chatCompletionUtils.js.map
+
+      /***/
+    },
+
+    /***/ 7401: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.CursorPage = exports.Page = void 0;
+      const core_1 = __nccwpck_require__(1798);
+      /**
+       * Note: no pagination actually occurs yet, this is for forwards-compatibility.
+       */
+      class Page extends core_1.AbstractPage {
+        constructor(client, response, body, options) {
+          super(client, response, body, options);
+          this.data = body.data;
+          this.object = body.object;
+        }
+        getPaginatedItems() {
+          return this.data;
+        }
+        // @deprecated Please use `nextPageInfo()` instead
+        /**
+         * This page represents a response that isn't actually paginated at the API level
+         * so there will never be any next page params.
+         */
+        nextPageParams() {
+          return null;
+        }
+        nextPageInfo() {
+          return null;
+        }
+      }
+      exports.Page = Page;
+      class CursorPage extends core_1.AbstractPage {
+        constructor(client, response, body, options) {
+          super(client, response, body, options);
+          this.data = body.data;
+        }
+        getPaginatedItems() {
+          return this.data;
+        }
+        // @deprecated Please use `nextPageInfo()` instead
+        nextPageParams() {
+          const info = this.nextPageInfo();
+          if (!info) return null;
+          if ("params" in info) return info.params;
+          const params = Object.fromEntries(info.url.searchParams);
+          if (!Object.keys(params).length) return null;
+          return params;
+        }
+        nextPageInfo() {
+          if (!this.data?.length) {
             return null;
-        return { params: { after: next } };
-    }
-}
-exports.CursorPage = CursorPage;
-//# sourceMappingURL=pagination.js.map
+          }
+          const next = this.data[this.data.length - 1]?.id;
+          if (!next) return null;
+          return { params: { after: next } };
+        }
+      }
+      exports.CursorPage = CursorPage;
+      //# sourceMappingURL=pagination.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 9593:
-/***/ ((__unused_webpack_module, exports) => {
+    /***/ 9593: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
 
-"use strict";
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.APIResource = void 0;
+      class APIResource {
+        constructor(client) {
+          this._client = client;
+        }
+      }
+      exports.APIResource = APIResource;
+      //# sourceMappingURL=resource.js.map
 
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.APIResource = void 0;
-class APIResource {
-    constructor(client) {
-        this._client = client;
-    }
-}
-exports.APIResource = APIResource;
-//# sourceMappingURL=resource.js.map
+      /***/
+    },
 
-/***/ }),
+    /***/ 6376: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-/***/ 6376:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Audio = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const SpeechAPI = __importStar(__nccwpck_require__(4117));
+      const TranscriptionsAPI = __importStar(__nccwpck_require__(5622));
+      const TranslationsAPI = __importStar(__nccwpck_require__(7735));
+      class Audio extends resource_1.APIResource {
+        constructor() {
+          super(...arguments);
+          this.transcriptions = new TranscriptionsAPI.Transcriptions(
+            this._client
+          );
+          this.translations = new TranslationsAPI.Translations(this._client);
+          this.speech = new SpeechAPI.Speech(this._client);
+        }
+      }
+      exports.Audio = Audio;
+      (function (Audio) {
+        Audio.Transcriptions = TranscriptionsAPI.Transcriptions;
+        Audio.Translations = TranslationsAPI.Translations;
+        Audio.Speech = SpeechAPI.Speech;
+      })((Audio = exports.Audio || (exports.Audio = {})));
+      //# sourceMappingURL=audio.js.map
 
-"use strict";
+      /***/
+    },
 
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Audio = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const SpeechAPI = __importStar(__nccwpck_require__(4117));
-const TranscriptionsAPI = __importStar(__nccwpck_require__(5622));
-const TranslationsAPI = __importStar(__nccwpck_require__(7735));
-class Audio extends resource_1.APIResource {
-    constructor() {
-        super(...arguments);
-        this.transcriptions = new TranscriptionsAPI.Transcriptions(this._client);
-        this.translations = new TranslationsAPI.Translations(this._client);
-        this.speech = new SpeechAPI.Speech(this._client);
-    }
-}
-exports.Audio = Audio;
-(function (Audio) {
-    Audio.Transcriptions = TranscriptionsAPI.Transcriptions;
-    Audio.Translations = TranslationsAPI.Translations;
-    Audio.Speech = SpeechAPI.Speech;
-})(Audio = exports.Audio || (exports.Audio = {}));
-//# sourceMappingURL=audio.js.map
+    /***/ 4117: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
 
-/***/ }),
-
-/***/ 4117:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Speech = void 0;
-const resource_1 = __nccwpck_require__(9593);
-class Speech extends resource_1.APIResource {
-    /**
-     * Generates audio from the input text.
-     */
-    create(body, options) {
-        return this._client.post('/audio/speech', { body, ...options, __binaryResponse: true });
-    }
-}
-exports.Speech = Speech;
-(function (Speech) {
-})(Speech = exports.Speech || (exports.Speech = {}));
-//# sourceMappingURL=speech.js.map
-
-/***/ }),
-
-/***/ 5622:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Transcriptions = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-class Transcriptions extends resource_1.APIResource {
-    /**
-     * Transcribes audio into the input language.
-     */
-    create(body, options) {
-        return this._client.post('/audio/transcriptions', (0, core_1.multipartFormRequestOptions)({ body, ...options }));
-    }
-}
-exports.Transcriptions = Transcriptions;
-(function (Transcriptions) {
-})(Transcriptions = exports.Transcriptions || (exports.Transcriptions = {}));
-//# sourceMappingURL=transcriptions.js.map
-
-/***/ }),
-
-/***/ 7735:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Translations = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-class Translations extends resource_1.APIResource {
-    /**
-     * Translates audio into English.
-     */
-    create(body, options) {
-        return this._client.post('/audio/translations', (0, core_1.multipartFormRequestOptions)({ body, ...options }));
-    }
-}
-exports.Translations = Translations;
-(function (Translations) {
-})(Translations = exports.Translations || (exports.Translations = {}));
-//# sourceMappingURL=translations.js.map
-
-/***/ }),
-
-/***/ 3241:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.AssistantsPage = exports.Assistants = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-const AssistantsAPI = __importStar(__nccwpck_require__(3241));
-const FilesAPI = __importStar(__nccwpck_require__(3535));
-const pagination_1 = __nccwpck_require__(7401);
-class Assistants extends resource_1.APIResource {
-    constructor() {
-        super(...arguments);
-        this.files = new FilesAPI.Files(this._client);
-    }
-    /**
-     * Create an assistant with a model and instructions.
-     */
-    create(body, options) {
-        return this._client.post('/assistants', {
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Speech = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      class Speech extends resource_1.APIResource {
+        /**
+         * Generates audio from the input text.
+         */
+        create(body, options) {
+          return this._client.post("/audio/speech", {
             body,
             ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Retrieves an assistant.
-     */
-    retrieve(assistantId, options) {
-        return this._client.get(`/assistants/${assistantId}`, {
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Modifies an assistant.
-     */
-    update(assistantId, body, options) {
-        return this._client.post(`/assistants/${assistantId}`, {
+            __binaryResponse: true,
+          });
+        }
+      }
+      exports.Speech = Speech;
+      (function (Speech) {})(
+        (Speech = exports.Speech || (exports.Speech = {}))
+      );
+      //# sourceMappingURL=speech.js.map
+
+      /***/
+    },
+
+    /***/ 5622: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Transcriptions = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      class Transcriptions extends resource_1.APIResource {
+        /**
+         * Transcribes audio into the input language.
+         */
+        create(body, options) {
+          return this._client.post(
+            "/audio/transcriptions",
+            (0, core_1.multipartFormRequestOptions)({ body, ...options })
+          );
+        }
+      }
+      exports.Transcriptions = Transcriptions;
+      (function (Transcriptions) {})(
+        (Transcriptions =
+          exports.Transcriptions || (exports.Transcriptions = {}))
+      );
+      //# sourceMappingURL=transcriptions.js.map
+
+      /***/
+    },
+
+    /***/ 7735: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Translations = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      class Translations extends resource_1.APIResource {
+        /**
+         * Translates audio into English.
+         */
+        create(body, options) {
+          return this._client.post(
+            "/audio/translations",
+            (0, core_1.multipartFormRequestOptions)({ body, ...options })
+          );
+        }
+      }
+      exports.Translations = Translations;
+      (function (Translations) {})(
+        (Translations = exports.Translations || (exports.Translations = {}))
+      );
+      //# sourceMappingURL=translations.js.map
+
+      /***/
+    },
+
+    /***/ 3241: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.AssistantsPage = exports.Assistants = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      const AssistantsAPI = __importStar(__nccwpck_require__(3241));
+      const FilesAPI = __importStar(__nccwpck_require__(3535));
+      const pagination_1 = __nccwpck_require__(7401);
+      class Assistants extends resource_1.APIResource {
+        constructor() {
+          super(...arguments);
+          this.files = new FilesAPI.Files(this._client);
+        }
+        /**
+         * Create an assistant with a model and instructions.
+         */
+        create(body, options) {
+          return this._client.post("/assistants", {
             body,
             ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    list(query = {}, options) {
-        if ((0, core_1.isRequestOptions)(query)) {
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        /**
+         * Retrieves an assistant.
+         */
+        retrieve(assistantId, options) {
+          return this._client.get(`/assistants/${assistantId}`, {
+            ...options,
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        /**
+         * Modifies an assistant.
+         */
+        update(assistantId, body, options) {
+          return this._client.post(`/assistants/${assistantId}`, {
+            body,
+            ...options,
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        list(query = {}, options) {
+          if ((0, core_1.isRequestOptions)(query)) {
             return this.list({}, query);
-        }
-        return this._client.getAPIList('/assistants', AssistantsPage, {
+          }
+          return this._client.getAPIList("/assistants", AssistantsPage, {
             query,
             ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Delete an assistant.
-     */
-    del(assistantId, options) {
-        return this._client.delete(`/assistants/${assistantId}`, {
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        /**
+         * Delete an assistant.
+         */
+        del(assistantId, options) {
+          return this._client.delete(`/assistants/${assistantId}`, {
             ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-}
-exports.Assistants = Assistants;
-class AssistantsPage extends pagination_1.CursorPage {
-}
-exports.AssistantsPage = AssistantsPage;
-(function (Assistants) {
-    Assistants.AssistantsPage = AssistantsAPI.AssistantsPage;
-    Assistants.Files = FilesAPI.Files;
-    Assistants.AssistantFilesPage = FilesAPI.AssistantFilesPage;
-})(Assistants = exports.Assistants || (exports.Assistants = {}));
-//# sourceMappingURL=assistants.js.map
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+      }
+      exports.Assistants = Assistants;
+      class AssistantsPage extends pagination_1.CursorPage {}
+      exports.AssistantsPage = AssistantsPage;
+      (function (Assistants) {
+        Assistants.AssistantsPage = AssistantsAPI.AssistantsPage;
+        Assistants.Files = FilesAPI.Files;
+        Assistants.AssistantFilesPage = FilesAPI.AssistantFilesPage;
+      })((Assistants = exports.Assistants || (exports.Assistants = {})));
+      //# sourceMappingURL=assistants.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 3535:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+    /***/ 3535: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.AssistantFilesPage = exports.Files = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-const FilesAPI = __importStar(__nccwpck_require__(3535));
-const pagination_1 = __nccwpck_require__(7401);
-class Files extends resource_1.APIResource {
-    /**
-     * Create an assistant file by attaching a
-     * [File](https://platform.openai.com/docs/api-reference/files) to an
-     * [assistant](https://platform.openai.com/docs/api-reference/assistants).
-     */
-    create(assistantId, body, options) {
-        return this._client.post(`/assistants/${assistantId}/files`, {
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.AssistantFilesPage = exports.Files = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      const FilesAPI = __importStar(__nccwpck_require__(3535));
+      const pagination_1 = __nccwpck_require__(7401);
+      class Files extends resource_1.APIResource {
+        /**
+         * Create an assistant file by attaching a
+         * [File](https://platform.openai.com/docs/api-reference/files) to an
+         * [assistant](https://platform.openai.com/docs/api-reference/assistants).
+         */
+        create(assistantId, body, options) {
+          return this._client.post(`/assistants/${assistantId}/files`, {
             body,
             ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Retrieves an AssistantFile.
-     */
-    retrieve(assistantId, fileId, options) {
-        return this._client.get(`/assistants/${assistantId}/files/${fileId}`, {
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    list(assistantId, query = {}, options) {
-        if ((0, core_1.isRequestOptions)(query)) {
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        /**
+         * Retrieves an AssistantFile.
+         */
+        retrieve(assistantId, fileId, options) {
+          return this._client.get(
+            `/assistants/${assistantId}/files/${fileId}`,
+            {
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
+        }
+        list(assistantId, query = {}, options) {
+          if ((0, core_1.isRequestOptions)(query)) {
             return this.list(assistantId, {}, query);
+          }
+          return this._client.getAPIList(
+            `/assistants/${assistantId}/files`,
+            AssistantFilesPage,
+            {
+              query,
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
         }
-        return this._client.getAPIList(`/assistants/${assistantId}/files`, AssistantFilesPage, {
-            query,
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Delete an assistant file.
-     */
-    del(assistantId, fileId, options) {
-        return this._client.delete(`/assistants/${assistantId}/files/${fileId}`, {
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-}
-exports.Files = Files;
-class AssistantFilesPage extends pagination_1.CursorPage {
-}
-exports.AssistantFilesPage = AssistantFilesPage;
-(function (Files) {
-    Files.AssistantFilesPage = FilesAPI.AssistantFilesPage;
-})(Files = exports.Files || (exports.Files = {}));
-//# sourceMappingURL=files.js.map
-
-/***/ }),
-
-/***/ 853:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Beta = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const AssistantsAPI = __importStar(__nccwpck_require__(3241));
-const ChatAPI = __importStar(__nccwpck_require__(8691));
-const ThreadsAPI = __importStar(__nccwpck_require__(1931));
-class Beta extends resource_1.APIResource {
-    constructor() {
-        super(...arguments);
-        this.chat = new ChatAPI.Chat(this._client);
-        this.assistants = new AssistantsAPI.Assistants(this._client);
-        this.threads = new ThreadsAPI.Threads(this._client);
-    }
-}
-exports.Beta = Beta;
-(function (Beta) {
-    Beta.Chat = ChatAPI.Chat;
-    Beta.Assistants = AssistantsAPI.Assistants;
-    Beta.AssistantsPage = AssistantsAPI.AssistantsPage;
-    Beta.Threads = ThreadsAPI.Threads;
-})(Beta = exports.Beta || (exports.Beta = {}));
-//# sourceMappingURL=beta.js.map
-
-/***/ }),
-
-/***/ 8691:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Chat = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const CompletionsAPI = __importStar(__nccwpck_require__(559));
-class Chat extends resource_1.APIResource {
-    constructor() {
-        super(...arguments);
-        this.completions = new CompletionsAPI.Completions(this._client);
-    }
-}
-exports.Chat = Chat;
-(function (Chat) {
-    Chat.Completions = CompletionsAPI.Completions;
-})(Chat = exports.Chat || (exports.Chat = {}));
-//# sourceMappingURL=chat.js.map
-
-/***/ }),
-
-/***/ 559:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Completions = exports.ChatCompletionStream = exports.ParsingFunction = exports.ChatCompletionStreamingRunner = exports.ChatCompletionRunner = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const ChatCompletionRunner_1 = __nccwpck_require__(5575);
-var ChatCompletionRunner_2 = __nccwpck_require__(5575);
-Object.defineProperty(exports, "ChatCompletionRunner", ({ enumerable: true, get: function () { return ChatCompletionRunner_2.ChatCompletionRunner; } }));
-const ChatCompletionStreamingRunner_1 = __nccwpck_require__(794);
-var ChatCompletionStreamingRunner_2 = __nccwpck_require__(794);
-Object.defineProperty(exports, "ChatCompletionStreamingRunner", ({ enumerable: true, get: function () { return ChatCompletionStreamingRunner_2.ChatCompletionStreamingRunner; } }));
-var RunnableFunction_1 = __nccwpck_require__(5464);
-Object.defineProperty(exports, "ParsingFunction", ({ enumerable: true, get: function () { return RunnableFunction_1.ParsingFunction; } }));
-const ChatCompletionStream_1 = __nccwpck_require__(7823);
-var ChatCompletionStream_2 = __nccwpck_require__(7823);
-Object.defineProperty(exports, "ChatCompletionStream", ({ enumerable: true, get: function () { return ChatCompletionStream_2.ChatCompletionStream; } }));
-class Completions extends resource_1.APIResource {
-    runFunctions(body, options) {
-        if (body.stream) {
-            return ChatCompletionStreamingRunner_1.ChatCompletionStreamingRunner.runFunctions(this._client.chat.completions, body, options);
+        /**
+         * Delete an assistant file.
+         */
+        del(assistantId, fileId, options) {
+          return this._client.delete(
+            `/assistants/${assistantId}/files/${fileId}`,
+            {
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
         }
-        return ChatCompletionRunner_1.ChatCompletionRunner.runFunctions(this._client.chat.completions, body, options);
-    }
-    runTools(body, options) {
-        if (body.stream) {
-            return ChatCompletionStreamingRunner_1.ChatCompletionStreamingRunner.runTools(this._client.chat.completions, body, options);
+      }
+      exports.Files = Files;
+      class AssistantFilesPage extends pagination_1.CursorPage {}
+      exports.AssistantFilesPage = AssistantFilesPage;
+      (function (Files) {
+        Files.AssistantFilesPage = FilesAPI.AssistantFilesPage;
+      })((Files = exports.Files || (exports.Files = {})));
+      //# sourceMappingURL=files.js.map
+
+      /***/
+    },
+
+    /***/ 853: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Beta = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const AssistantsAPI = __importStar(__nccwpck_require__(3241));
+      const ChatAPI = __importStar(__nccwpck_require__(8691));
+      const ThreadsAPI = __importStar(__nccwpck_require__(1931));
+      class Beta extends resource_1.APIResource {
+        constructor() {
+          super(...arguments);
+          this.chat = new ChatAPI.Chat(this._client);
+          this.assistants = new AssistantsAPI.Assistants(this._client);
+          this.threads = new ThreadsAPI.Threads(this._client);
         }
-        return ChatCompletionRunner_1.ChatCompletionRunner.runTools(this._client.chat.completions, body, options);
-    }
-    /**
-     * Creates a chat completion stream
-     */
-    stream(body, options) {
-        return ChatCompletionStream_1.ChatCompletionStream.createChatCompletion(this._client.chat.completions, body, options);
-    }
-}
-exports.Completions = Completions;
-//# sourceMappingURL=completions.js.map
+      }
+      exports.Beta = Beta;
+      (function (Beta) {
+        Beta.Chat = ChatAPI.Chat;
+        Beta.Assistants = AssistantsAPI.Assistants;
+        Beta.AssistantsPage = AssistantsAPI.AssistantsPage;
+        Beta.Threads = ThreadsAPI.Threads;
+      })((Beta = exports.Beta || (exports.Beta = {})));
+      //# sourceMappingURL=beta.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 9569:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+    /***/ 8691: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-"use strict";
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Chat = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const CompletionsAPI = __importStar(__nccwpck_require__(559));
+      class Chat extends resource_1.APIResource {
+        constructor() {
+          super(...arguments);
+          this.completions = new CompletionsAPI.Completions(this._client);
+        }
+      }
+      exports.Chat = Chat;
+      (function (Chat) {
+        Chat.Completions = CompletionsAPI.Completions;
+      })((Chat = exports.Chat || (exports.Chat = {})));
+      //# sourceMappingURL=chat.js.map
 
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.MessageFilesPage = exports.Files = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-const FilesAPI = __importStar(__nccwpck_require__(9569));
-const pagination_1 = __nccwpck_require__(7401);
-class Files extends resource_1.APIResource {
-    /**
-     * Retrieves a message file.
-     */
-    retrieve(threadId, messageId, fileId, options) {
-        return this._client.get(`/threads/${threadId}/messages/${messageId}/files/${fileId}`, {
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    list(threadId, messageId, query = {}, options) {
-        if ((0, core_1.isRequestOptions)(query)) {
+      /***/
+    },
+
+    /***/ 559: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Completions =
+        exports.ChatCompletionStream =
+        exports.ParsingFunction =
+        exports.ChatCompletionStreamingRunner =
+        exports.ChatCompletionRunner =
+          void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const ChatCompletionRunner_1 = __nccwpck_require__(5575);
+      var ChatCompletionRunner_2 = __nccwpck_require__(5575);
+      Object.defineProperty(exports, "ChatCompletionRunner", {
+        enumerable: true,
+        get: function () {
+          return ChatCompletionRunner_2.ChatCompletionRunner;
+        },
+      });
+      const ChatCompletionStreamingRunner_1 = __nccwpck_require__(794);
+      var ChatCompletionStreamingRunner_2 = __nccwpck_require__(794);
+      Object.defineProperty(exports, "ChatCompletionStreamingRunner", {
+        enumerable: true,
+        get: function () {
+          return ChatCompletionStreamingRunner_2.ChatCompletionStreamingRunner;
+        },
+      });
+      var RunnableFunction_1 = __nccwpck_require__(5464);
+      Object.defineProperty(exports, "ParsingFunction", {
+        enumerable: true,
+        get: function () {
+          return RunnableFunction_1.ParsingFunction;
+        },
+      });
+      const ChatCompletionStream_1 = __nccwpck_require__(7823);
+      var ChatCompletionStream_2 = __nccwpck_require__(7823);
+      Object.defineProperty(exports, "ChatCompletionStream", {
+        enumerable: true,
+        get: function () {
+          return ChatCompletionStream_2.ChatCompletionStream;
+        },
+      });
+      class Completions extends resource_1.APIResource {
+        runFunctions(body, options) {
+          if (body.stream) {
+            return ChatCompletionStreamingRunner_1.ChatCompletionStreamingRunner.runFunctions(
+              this._client.chat.completions,
+              body,
+              options
+            );
+          }
+          return ChatCompletionRunner_1.ChatCompletionRunner.runFunctions(
+            this._client.chat.completions,
+            body,
+            options
+          );
+        }
+        runTools(body, options) {
+          if (body.stream) {
+            return ChatCompletionStreamingRunner_1.ChatCompletionStreamingRunner.runTools(
+              this._client.chat.completions,
+              body,
+              options
+            );
+          }
+          return ChatCompletionRunner_1.ChatCompletionRunner.runTools(
+            this._client.chat.completions,
+            body,
+            options
+          );
+        }
+        /**
+         * Creates a chat completion stream
+         */
+        stream(body, options) {
+          return ChatCompletionStream_1.ChatCompletionStream.createChatCompletion(
+            this._client.chat.completions,
+            body,
+            options
+          );
+        }
+      }
+      exports.Completions = Completions;
+      //# sourceMappingURL=completions.js.map
+
+      /***/
+    },
+
+    /***/ 9569: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.MessageFilesPage = exports.Files = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      const FilesAPI = __importStar(__nccwpck_require__(9569));
+      const pagination_1 = __nccwpck_require__(7401);
+      class Files extends resource_1.APIResource {
+        /**
+         * Retrieves a message file.
+         */
+        retrieve(threadId, messageId, fileId, options) {
+          return this._client.get(
+            `/threads/${threadId}/messages/${messageId}/files/${fileId}`,
+            {
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
+        }
+        list(threadId, messageId, query = {}, options) {
+          if ((0, core_1.isRequestOptions)(query)) {
             return this.list(threadId, messageId, {}, query);
+          }
+          return this._client.getAPIList(
+            `/threads/${threadId}/messages/${messageId}/files`,
+            MessageFilesPage,
+            {
+              query,
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
         }
-        return this._client.getAPIList(`/threads/${threadId}/messages/${messageId}/files`, MessageFilesPage, {
-            query,
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-}
-exports.Files = Files;
-class MessageFilesPage extends pagination_1.CursorPage {
-}
-exports.MessageFilesPage = MessageFilesPage;
-(function (Files) {
-    Files.MessageFilesPage = FilesAPI.MessageFilesPage;
-})(Files = exports.Files || (exports.Files = {}));
-//# sourceMappingURL=files.js.map
+      }
+      exports.Files = Files;
+      class MessageFilesPage extends pagination_1.CursorPage {}
+      exports.MessageFilesPage = MessageFilesPage;
+      (function (Files) {
+        Files.MessageFilesPage = FilesAPI.MessageFilesPage;
+      })((Files = exports.Files || (exports.Files = {})));
+      //# sourceMappingURL=files.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 8266:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+    /***/ 8266: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ThreadMessagesPage = exports.Messages = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-const MessagesAPI = __importStar(__nccwpck_require__(8266));
-const FilesAPI = __importStar(__nccwpck_require__(9569));
-const pagination_1 = __nccwpck_require__(7401);
-class Messages extends resource_1.APIResource {
-    constructor() {
-        super(...arguments);
-        this.files = new FilesAPI.Files(this._client);
-    }
-    /**
-     * Create a message.
-     */
-    create(threadId, body, options) {
-        return this._client.post(`/threads/${threadId}/messages`, {
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.ThreadMessagesPage = exports.Messages = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      const MessagesAPI = __importStar(__nccwpck_require__(8266));
+      const FilesAPI = __importStar(__nccwpck_require__(9569));
+      const pagination_1 = __nccwpck_require__(7401);
+      class Messages extends resource_1.APIResource {
+        constructor() {
+          super(...arguments);
+          this.files = new FilesAPI.Files(this._client);
+        }
+        /**
+         * Create a message.
+         */
+        create(threadId, body, options) {
+          return this._client.post(`/threads/${threadId}/messages`, {
             body,
             ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Retrieve a message.
-     */
-    retrieve(threadId, messageId, options) {
-        return this._client.get(`/threads/${threadId}/messages/${messageId}`, {
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Modifies a message.
-     */
-    update(threadId, messageId, body, options) {
-        return this._client.post(`/threads/${threadId}/messages/${messageId}`, {
-            body,
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    list(threadId, query = {}, options) {
-        if ((0, core_1.isRequestOptions)(query)) {
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        /**
+         * Retrieve a message.
+         */
+        retrieve(threadId, messageId, options) {
+          return this._client.get(
+            `/threads/${threadId}/messages/${messageId}`,
+            {
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
+        }
+        /**
+         * Modifies a message.
+         */
+        update(threadId, messageId, body, options) {
+          return this._client.post(
+            `/threads/${threadId}/messages/${messageId}`,
+            {
+              body,
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
+        }
+        list(threadId, query = {}, options) {
+          if ((0, core_1.isRequestOptions)(query)) {
             return this.list(threadId, {}, query);
+          }
+          return this._client.getAPIList(
+            `/threads/${threadId}/messages`,
+            ThreadMessagesPage,
+            {
+              query,
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
         }
-        return this._client.getAPIList(`/threads/${threadId}/messages`, ThreadMessagesPage, {
-            query,
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-}
-exports.Messages = Messages;
-class ThreadMessagesPage extends pagination_1.CursorPage {
-}
-exports.ThreadMessagesPage = ThreadMessagesPage;
-(function (Messages) {
-    Messages.ThreadMessagesPage = MessagesAPI.ThreadMessagesPage;
-    Messages.Files = FilesAPI.Files;
-    Messages.MessageFilesPage = FilesAPI.MessageFilesPage;
-})(Messages = exports.Messages || (exports.Messages = {}));
-//# sourceMappingURL=messages.js.map
+      }
+      exports.Messages = Messages;
+      class ThreadMessagesPage extends pagination_1.CursorPage {}
+      exports.ThreadMessagesPage = ThreadMessagesPage;
+      (function (Messages) {
+        Messages.ThreadMessagesPage = MessagesAPI.ThreadMessagesPage;
+        Messages.Files = FilesAPI.Files;
+        Messages.MessageFilesPage = FilesAPI.MessageFilesPage;
+      })((Messages = exports.Messages || (exports.Messages = {})));
+      //# sourceMappingURL=messages.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 3187:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+    /***/ 3187: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.RunsPage = exports.Runs = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-const RunsAPI = __importStar(__nccwpck_require__(3187));
-const StepsAPI = __importStar(__nccwpck_require__(2630));
-const pagination_1 = __nccwpck_require__(7401);
-class Runs extends resource_1.APIResource {
-    constructor() {
-        super(...arguments);
-        this.steps = new StepsAPI.Steps(this._client);
-    }
-    /**
-     * Create a run.
-     */
-    create(threadId, body, options) {
-        return this._client.post(`/threads/${threadId}/runs`, {
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.RunsPage = exports.Runs = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      const RunsAPI = __importStar(__nccwpck_require__(3187));
+      const StepsAPI = __importStar(__nccwpck_require__(2630));
+      const pagination_1 = __nccwpck_require__(7401);
+      class Runs extends resource_1.APIResource {
+        constructor() {
+          super(...arguments);
+          this.steps = new StepsAPI.Steps(this._client);
+        }
+        /**
+         * Create a run.
+         */
+        create(threadId, body, options) {
+          return this._client.post(`/threads/${threadId}/runs`, {
             body,
             ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Retrieves a run.
-     */
-    retrieve(threadId, runId, options) {
-        return this._client.get(`/threads/${threadId}/runs/${runId}`, {
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        /**
+         * Retrieves a run.
+         */
+        retrieve(threadId, runId, options) {
+          return this._client.get(`/threads/${threadId}/runs/${runId}`, {
             ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Modifies a run.
-     */
-    update(threadId, runId, body, options) {
-        return this._client.post(`/threads/${threadId}/runs/${runId}`, {
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        /**
+         * Modifies a run.
+         */
+        update(threadId, runId, body, options) {
+          return this._client.post(`/threads/${threadId}/runs/${runId}`, {
             body,
             ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    list(threadId, query = {}, options) {
-        if ((0, core_1.isRequestOptions)(query)) {
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        list(threadId, query = {}, options) {
+          if ((0, core_1.isRequestOptions)(query)) {
             return this.list(threadId, {}, query);
+          }
+          return this._client.getAPIList(
+            `/threads/${threadId}/runs`,
+            RunsPage,
+            {
+              query,
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
         }
-        return this._client.getAPIList(`/threads/${threadId}/runs`, RunsPage, {
-            query,
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Cancels a run that is `in_progress`.
-     */
-    cancel(threadId, runId, options) {
-        return this._client.post(`/threads/${threadId}/runs/${runId}/cancel`, {
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * When a run has the `status: "requires_action"` and `required_action.type` is
-     * `submit_tool_outputs`, this endpoint can be used to submit the outputs from the
-     * tool calls once they're all completed. All outputs must be submitted in a single
-     * request.
-     */
-    submitToolOutputs(threadId, runId, body, options) {
-        return this._client.post(`/threads/${threadId}/runs/${runId}/submit_tool_outputs`, {
-            body,
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-}
-exports.Runs = Runs;
-class RunsPage extends pagination_1.CursorPage {
-}
-exports.RunsPage = RunsPage;
-(function (Runs) {
-    Runs.RunsPage = RunsAPI.RunsPage;
-    Runs.Steps = StepsAPI.Steps;
-    Runs.RunStepsPage = StepsAPI.RunStepsPage;
-})(Runs = exports.Runs || (exports.Runs = {}));
-//# sourceMappingURL=runs.js.map
+        /**
+         * Cancels a run that is `in_progress`.
+         */
+        cancel(threadId, runId, options) {
+          return this._client.post(
+            `/threads/${threadId}/runs/${runId}/cancel`,
+            {
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
+        }
+        /**
+         * When a run has the `status: "requires_action"` and `required_action.type` is
+         * `submit_tool_outputs`, this endpoint can be used to submit the outputs from the
+         * tool calls once they're all completed. All outputs must be submitted in a single
+         * request.
+         */
+        submitToolOutputs(threadId, runId, body, options) {
+          return this._client.post(
+            `/threads/${threadId}/runs/${runId}/submit_tool_outputs`,
+            {
+              body,
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
+        }
+      }
+      exports.Runs = Runs;
+      class RunsPage extends pagination_1.CursorPage {}
+      exports.RunsPage = RunsPage;
+      (function (Runs) {
+        Runs.RunsPage = RunsAPI.RunsPage;
+        Runs.Steps = StepsAPI.Steps;
+        Runs.RunStepsPage = StepsAPI.RunStepsPage;
+      })((Runs = exports.Runs || (exports.Runs = {})));
+      //# sourceMappingURL=runs.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 2630:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+    /***/ 2630: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.RunStepsPage = exports.Steps = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-const StepsAPI = __importStar(__nccwpck_require__(2630));
-const pagination_1 = __nccwpck_require__(7401);
-class Steps extends resource_1.APIResource {
-    /**
-     * Retrieves a run step.
-     */
-    retrieve(threadId, runId, stepId, options) {
-        return this._client.get(`/threads/${threadId}/runs/${runId}/steps/${stepId}`, {
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    list(threadId, runId, query = {}, options) {
-        if ((0, core_1.isRequestOptions)(query)) {
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.RunStepsPage = exports.Steps = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      const StepsAPI = __importStar(__nccwpck_require__(2630));
+      const pagination_1 = __nccwpck_require__(7401);
+      class Steps extends resource_1.APIResource {
+        /**
+         * Retrieves a run step.
+         */
+        retrieve(threadId, runId, stepId, options) {
+          return this._client.get(
+            `/threads/${threadId}/runs/${runId}/steps/${stepId}`,
+            {
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
+        }
+        list(threadId, runId, query = {}, options) {
+          if ((0, core_1.isRequestOptions)(query)) {
             return this.list(threadId, runId, {}, query);
+          }
+          return this._client.getAPIList(
+            `/threads/${threadId}/runs/${runId}/steps`,
+            RunStepsPage,
+            {
+              query,
+              ...options,
+              headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+            }
+          );
         }
-        return this._client.getAPIList(`/threads/${threadId}/runs/${runId}/steps`, RunStepsPage, {
+      }
+      exports.Steps = Steps;
+      class RunStepsPage extends pagination_1.CursorPage {}
+      exports.RunStepsPage = RunStepsPage;
+      (function (Steps) {
+        Steps.RunStepsPage = StepsAPI.RunStepsPage;
+      })((Steps = exports.Steps || (exports.Steps = {})));
+      //# sourceMappingURL=steps.js.map
+
+      /***/
+    },
+
+    /***/ 1931: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Threads = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      const MessagesAPI = __importStar(__nccwpck_require__(8266));
+      const RunsAPI = __importStar(__nccwpck_require__(3187));
+      class Threads extends resource_1.APIResource {
+        constructor() {
+          super(...arguments);
+          this.runs = new RunsAPI.Runs(this._client);
+          this.messages = new MessagesAPI.Messages(this._client);
+        }
+        create(body = {}, options) {
+          if ((0, core_1.isRequestOptions)(body)) {
+            return this.create({}, body);
+          }
+          return this._client.post("/threads", {
+            body,
+            ...options,
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        /**
+         * Retrieves a thread.
+         */
+        retrieve(threadId, options) {
+          return this._client.get(`/threads/${threadId}`, {
+            ...options,
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        /**
+         * Modifies a thread.
+         */
+        update(threadId, body, options) {
+          return this._client.post(`/threads/${threadId}`, {
+            body,
+            ...options,
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        /**
+         * Delete a thread.
+         */
+        del(threadId, options) {
+          return this._client.delete(`/threads/${threadId}`, {
+            ...options,
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+        /**
+         * Create a thread and run it in one request.
+         */
+        createAndRun(body, options) {
+          return this._client.post("/threads/runs", {
+            body,
+            ...options,
+            headers: { "OpenAI-Beta": "assistants=v1", ...options?.headers },
+          });
+        }
+      }
+      exports.Threads = Threads;
+      (function (Threads) {
+        Threads.Runs = RunsAPI.Runs;
+        Threads.RunsPage = RunsAPI.RunsPage;
+        Threads.Messages = MessagesAPI.Messages;
+        Threads.ThreadMessagesPage = MessagesAPI.ThreadMessagesPage;
+      })((Threads = exports.Threads || (exports.Threads = {})));
+      //# sourceMappingURL=threads.js.map
+
+      /***/
+    },
+
+    /***/ 7670: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Chat = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const CompletionsAPI = __importStar(__nccwpck_require__(2875));
+      class Chat extends resource_1.APIResource {
+        constructor() {
+          super(...arguments);
+          this.completions = new CompletionsAPI.Completions(this._client);
+        }
+      }
+      exports.Chat = Chat;
+      (function (Chat) {
+        Chat.Completions = CompletionsAPI.Completions;
+      })((Chat = exports.Chat || (exports.Chat = {})));
+      //# sourceMappingURL=chat.js.map
+
+      /***/
+    },
+
+    /***/ 2875: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Completions = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      class Completions extends resource_1.APIResource {
+        create(body, options) {
+          return this._client.post("/chat/completions", {
+            body,
+            ...options,
+            stream: body.stream ?? false,
+          });
+        }
+      }
+      exports.Completions = Completions;
+      (function (Completions) {})(
+        (Completions = exports.Completions || (exports.Completions = {}))
+      );
+      //# sourceMappingURL=completions.js.map
+
+      /***/
+    },
+
+    /***/ 8240: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Completions = exports.Chat = void 0;
+      var chat_1 = __nccwpck_require__(7670);
+      Object.defineProperty(exports, "Chat", {
+        enumerable: true,
+        get: function () {
+          return chat_1.Chat;
+        },
+      });
+      var completions_1 = __nccwpck_require__(2875);
+      Object.defineProperty(exports, "Completions", {
+        enumerable: true,
+        get: function () {
+          return completions_1.Completions;
+        },
+      });
+      //# sourceMappingURL=index.js.map
+
+      /***/
+    },
+
+    /***/ 9327: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Completions = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      class Completions extends resource_1.APIResource {
+        create(body, options) {
+          return this._client.post("/completions", {
+            body,
+            ...options,
+            stream: body.stream ?? false,
+          });
+        }
+      }
+      exports.Completions = Completions;
+      (function (Completions) {})(
+        (Completions = exports.Completions || (exports.Completions = {}))
+      );
+      //# sourceMappingURL=completions.js.map
+
+      /***/
+    },
+
+    /***/ 4259: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Edits = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      class Edits extends resource_1.APIResource {
+        /**
+         * Creates a new edit for the provided input, instruction, and parameters.
+         *
+         * @deprecated The Edits API is deprecated; please use Chat Completions instead.
+         *
+         * https://openai.com/blog/gpt-4-api-general-availability#deprecation-of-the-edits-api
+         */
+        create(body, options) {
+          return this._client.post("/edits", { body, ...options });
+        }
+      }
+      exports.Edits = Edits;
+      (function (Edits) {})((Edits = exports.Edits || (exports.Edits = {})));
+      //# sourceMappingURL=edits.js.map
+
+      /***/
+    },
+
+    /***/ 8064: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Embeddings = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      class Embeddings extends resource_1.APIResource {
+        /**
+         * Creates an embedding vector representing the input text.
+         */
+        create(body, options) {
+          return this._client.post("/embeddings", { body, ...options });
+        }
+      }
+      exports.Embeddings = Embeddings;
+      (function (Embeddings) {})(
+        (Embeddings = exports.Embeddings || (exports.Embeddings = {}))
+      );
+      //# sourceMappingURL=embeddings.js.map
+
+      /***/
+    },
+
+    /***/ 3873: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
+
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.FileObjectsPage = exports.Files = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      const core_2 = __nccwpck_require__(1798);
+      const error_1 = __nccwpck_require__(8905);
+      const FilesAPI = __importStar(__nccwpck_require__(3873));
+      const core_3 = __nccwpck_require__(1798);
+      const pagination_1 = __nccwpck_require__(7401);
+      class Files extends resource_1.APIResource {
+        /**
+         * Upload a file that can be used across various endpoints/features. The size of
+         * all the files uploaded by one organization can be up to 100 GB.
+         *
+         * The size of individual files for can be a maximum of 512MB. See the
+         * [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools) to
+         * learn more about the types of files supported. The Fine-tuning API only supports
+         * `.jsonl` files.
+         *
+         * Please [contact us](https://help.openai.com/) if you need to increase these
+         * storage limits.
+         */
+        create(body, options) {
+          return this._client.post(
+            "/files",
+            (0, core_3.multipartFormRequestOptions)({ body, ...options })
+          );
+        }
+        /**
+         * Returns information about a specific file.
+         */
+        retrieve(fileId, options) {
+          return this._client.get(`/files/${fileId}`, options);
+        }
+        list(query = {}, options) {
+          if ((0, core_1.isRequestOptions)(query)) {
+            return this.list({}, query);
+          }
+          return this._client.getAPIList("/files", FileObjectsPage, {
             query,
             ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-}
-exports.Steps = Steps;
-class RunStepsPage extends pagination_1.CursorPage {
-}
-exports.RunStepsPage = RunStepsPage;
-(function (Steps) {
-    Steps.RunStepsPage = StepsAPI.RunStepsPage;
-})(Steps = exports.Steps || (exports.Steps = {}));
-//# sourceMappingURL=steps.js.map
-
-/***/ }),
-
-/***/ 1931:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Threads = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-const MessagesAPI = __importStar(__nccwpck_require__(8266));
-const RunsAPI = __importStar(__nccwpck_require__(3187));
-class Threads extends resource_1.APIResource {
-    constructor() {
-        super(...arguments);
-        this.runs = new RunsAPI.Runs(this._client);
-        this.messages = new MessagesAPI.Messages(this._client);
-    }
-    create(body = {}, options) {
-        if ((0, core_1.isRequestOptions)(body)) {
-            return this.create({}, body);
+          });
         }
-        return this._client.post('/threads', {
-            body,
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Retrieves a thread.
-     */
-    retrieve(threadId, options) {
-        return this._client.get(`/threads/${threadId}`, {
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Modifies a thread.
-     */
-    update(threadId, body, options) {
-        return this._client.post(`/threads/${threadId}`, {
-            body,
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Delete a thread.
-     */
-    del(threadId, options) {
-        return this._client.delete(`/threads/${threadId}`, {
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-    /**
-     * Create a thread and run it in one request.
-     */
-    createAndRun(body, options) {
-        return this._client.post('/threads/runs', {
-            body,
-            ...options,
-            headers: { 'OpenAI-Beta': 'assistants=v1', ...options?.headers },
-        });
-    }
-}
-exports.Threads = Threads;
-(function (Threads) {
-    Threads.Runs = RunsAPI.Runs;
-    Threads.RunsPage = RunsAPI.RunsPage;
-    Threads.Messages = MessagesAPI.Messages;
-    Threads.ThreadMessagesPage = MessagesAPI.ThreadMessagesPage;
-})(Threads = exports.Threads || (exports.Threads = {}));
-//# sourceMappingURL=threads.js.map
-
-/***/ }),
-
-/***/ 7670:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Chat = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const CompletionsAPI = __importStar(__nccwpck_require__(2875));
-class Chat extends resource_1.APIResource {
-    constructor() {
-        super(...arguments);
-        this.completions = new CompletionsAPI.Completions(this._client);
-    }
-}
-exports.Chat = Chat;
-(function (Chat) {
-    Chat.Completions = CompletionsAPI.Completions;
-})(Chat = exports.Chat || (exports.Chat = {}));
-//# sourceMappingURL=chat.js.map
-
-/***/ }),
-
-/***/ 2875:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Completions = void 0;
-const resource_1 = __nccwpck_require__(9593);
-class Completions extends resource_1.APIResource {
-    create(body, options) {
-        return this._client.post('/chat/completions', { body, ...options, stream: body.stream ?? false });
-    }
-}
-exports.Completions = Completions;
-(function (Completions) {
-})(Completions = exports.Completions || (exports.Completions = {}));
-//# sourceMappingURL=completions.js.map
-
-/***/ }),
-
-/***/ 8240:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Completions = exports.Chat = void 0;
-var chat_1 = __nccwpck_require__(7670);
-Object.defineProperty(exports, "Chat", ({ enumerable: true, get: function () { return chat_1.Chat; } }));
-var completions_1 = __nccwpck_require__(2875);
-Object.defineProperty(exports, "Completions", ({ enumerable: true, get: function () { return completions_1.Completions; } }));
-//# sourceMappingURL=index.js.map
-
-/***/ }),
-
-/***/ 9327:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Completions = void 0;
-const resource_1 = __nccwpck_require__(9593);
-class Completions extends resource_1.APIResource {
-    create(body, options) {
-        return this._client.post('/completions', { body, ...options, stream: body.stream ?? false });
-    }
-}
-exports.Completions = Completions;
-(function (Completions) {
-})(Completions = exports.Completions || (exports.Completions = {}));
-//# sourceMappingURL=completions.js.map
-
-/***/ }),
-
-/***/ 4259:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Edits = void 0;
-const resource_1 = __nccwpck_require__(9593);
-class Edits extends resource_1.APIResource {
-    /**
-     * Creates a new edit for the provided input, instruction, and parameters.
-     *
-     * @deprecated The Edits API is deprecated; please use Chat Completions instead.
-     *
-     * https://openai.com/blog/gpt-4-api-general-availability#deprecation-of-the-edits-api
-     */
-    create(body, options) {
-        return this._client.post('/edits', { body, ...options });
-    }
-}
-exports.Edits = Edits;
-(function (Edits) {
-})(Edits = exports.Edits || (exports.Edits = {}));
-//# sourceMappingURL=edits.js.map
-
-/***/ }),
-
-/***/ 8064:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Embeddings = void 0;
-const resource_1 = __nccwpck_require__(9593);
-class Embeddings extends resource_1.APIResource {
-    /**
-     * Creates an embedding vector representing the input text.
-     */
-    create(body, options) {
-        return this._client.post('/embeddings', { body, ...options });
-    }
-}
-exports.Embeddings = Embeddings;
-(function (Embeddings) {
-})(Embeddings = exports.Embeddings || (exports.Embeddings = {}));
-//# sourceMappingURL=embeddings.js.map
-
-/***/ }),
-
-/***/ 3873:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.FileObjectsPage = exports.Files = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-const core_2 = __nccwpck_require__(1798);
-const error_1 = __nccwpck_require__(8905);
-const FilesAPI = __importStar(__nccwpck_require__(3873));
-const core_3 = __nccwpck_require__(1798);
-const pagination_1 = __nccwpck_require__(7401);
-class Files extends resource_1.APIResource {
-    /**
-     * Upload a file that can be used across various endpoints/features. The size of
-     * all the files uploaded by one organization can be up to 100 GB.
-     *
-     * The size of individual files for can be a maximum of 512MB. See the
-     * [Assistants Tools guide](https://platform.openai.com/docs/assistants/tools) to
-     * learn more about the types of files supported. The Fine-tuning API only supports
-     * `.jsonl` files.
-     *
-     * Please [contact us](https://help.openai.com/) if you need to increase these
-     * storage limits.
-     */
-    create(body, options) {
-        return this._client.post('/files', (0, core_3.multipartFormRequestOptions)({ body, ...options }));
-    }
-    /**
-     * Returns information about a specific file.
-     */
-    retrieve(fileId, options) {
-        return this._client.get(`/files/${fileId}`, options);
-    }
-    list(query = {}, options) {
-        if ((0, core_1.isRequestOptions)(query)) {
-            return this.list({}, query);
+        /**
+         * Delete a file.
+         */
+        del(fileId, options) {
+          return this._client.delete(`/files/${fileId}`, options);
         }
-        return this._client.getAPIList('/files', FileObjectsPage, { query, ...options });
-    }
-    /**
-     * Delete a file.
-     */
-    del(fileId, options) {
-        return this._client.delete(`/files/${fileId}`, options);
-    }
-    /**
-     * Returns the contents of the specified file.
-     */
-    content(fileId, options) {
-        return this._client.get(`/files/${fileId}/content`, { ...options, __binaryResponse: true });
-    }
-    /**
-     * Returns the contents of the specified file.
-     *
-     * @deprecated The `.content()` method should be used instead
-     */
-    retrieveContent(fileId, options) {
-        return this._client.get(`/files/${fileId}/content`, {
+        /**
+         * Returns the contents of the specified file.
+         */
+        content(fileId, options) {
+          return this._client.get(`/files/${fileId}/content`, {
             ...options,
-            headers: { Accept: 'application/json', ...options?.headers },
-        });
-    }
-    /**
-     * Waits for the given file to be processed, default timeout is 30 mins.
-     */
-    async waitForProcessing(id, { pollInterval = 5000, maxWait = 30 * 60 * 1000 } = {}) {
-        const TERMINAL_STATES = new Set(['processed', 'error', 'deleted']);
-        const start = Date.now();
-        let file = await this.retrieve(id);
-        while (!file.status || !TERMINAL_STATES.has(file.status)) {
+            __binaryResponse: true,
+          });
+        }
+        /**
+         * Returns the contents of the specified file.
+         *
+         * @deprecated The `.content()` method should be used instead
+         */
+        retrieveContent(fileId, options) {
+          return this._client.get(`/files/${fileId}/content`, {
+            ...options,
+            headers: { Accept: "application/json", ...options?.headers },
+          });
+        }
+        /**
+         * Waits for the given file to be processed, default timeout is 30 mins.
+         */
+        async waitForProcessing(
+          id,
+          { pollInterval = 5000, maxWait = 30 * 60 * 1000 } = {}
+        ) {
+          const TERMINAL_STATES = new Set(["processed", "error", "deleted"]);
+          const start = Date.now();
+          let file = await this.retrieve(id);
+          while (!file.status || !TERMINAL_STATES.has(file.status)) {
             await (0, core_2.sleep)(pollInterval);
             file = await this.retrieve(id);
             if (Date.now() - start > maxWait) {
-                throw new error_1.APIConnectionTimeoutError({
-                    message: `Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`,
-                });
+              throw new error_1.APIConnectionTimeoutError({
+                message: `Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`,
+              });
             }
+          }
+          return file;
         }
-        return file;
-    }
-}
-exports.Files = Files;
-/**
- * Note: no pagination actually occurs yet, this is for forwards-compatibility.
- */
-class FileObjectsPage extends pagination_1.Page {
-}
-exports.FileObjectsPage = FileObjectsPage;
-(function (Files) {
-    Files.FileObjectsPage = FilesAPI.FileObjectsPage;
-})(Files = exports.Files || (exports.Files = {}));
-//# sourceMappingURL=files.js.map
+      }
+      exports.Files = Files;
+      /**
+       * Note: no pagination actually occurs yet, this is for forwards-compatibility.
+       */
+      class FileObjectsPage extends pagination_1.Page {}
+      exports.FileObjectsPage = FileObjectsPage;
+      (function (Files) {
+        Files.FileObjectsPage = FilesAPI.FileObjectsPage;
+      })((Files = exports.Files || (exports.Files = {})));
+      //# sourceMappingURL=files.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 3379:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+    /***/ 3379: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.FineTunesPage = exports.FineTunes = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const FineTunesAPI = __importStar(__nccwpck_require__(3379));
-const pagination_1 = __nccwpck_require__(7401);
-class FineTunes extends resource_1.APIResource {
-    /**
-     * Creates a job that fine-tunes a specified model from a given dataset.
-     *
-     * Response includes details of the enqueued job including job status and the name
-     * of the fine-tuned models once complete.
-     *
-     * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/legacy-fine-tuning)
-     */
-    create(body, options) {
-        return this._client.post('/fine-tunes', { body, ...options });
-    }
-    /**
-     * Gets info about the fine-tune job.
-     *
-     * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/legacy-fine-tuning)
-     */
-    retrieve(fineTuneId, options) {
-        return this._client.get(`/fine-tunes/${fineTuneId}`, options);
-    }
-    /**
-     * List your organization's fine-tuning jobs
-     */
-    list(options) {
-        return this._client.getAPIList('/fine-tunes', FineTunesPage, options);
-    }
-    /**
-     * Immediately cancel a fine-tune job.
-     */
-    cancel(fineTuneId, options) {
-        return this._client.post(`/fine-tunes/${fineTuneId}/cancel`, options);
-    }
-    listEvents(fineTuneId, query, options) {
-        return this._client.get(`/fine-tunes/${fineTuneId}/events`, {
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.FineTunesPage = exports.FineTunes = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const FineTunesAPI = __importStar(__nccwpck_require__(3379));
+      const pagination_1 = __nccwpck_require__(7401);
+      class FineTunes extends resource_1.APIResource {
+        /**
+         * Creates a job that fine-tunes a specified model from a given dataset.
+         *
+         * Response includes details of the enqueued job including job status and the name
+         * of the fine-tuned models once complete.
+         *
+         * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/legacy-fine-tuning)
+         */
+        create(body, options) {
+          return this._client.post("/fine-tunes", { body, ...options });
+        }
+        /**
+         * Gets info about the fine-tune job.
+         *
+         * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/legacy-fine-tuning)
+         */
+        retrieve(fineTuneId, options) {
+          return this._client.get(`/fine-tunes/${fineTuneId}`, options);
+        }
+        /**
+         * List your organization's fine-tuning jobs
+         */
+        list(options) {
+          return this._client.getAPIList("/fine-tunes", FineTunesPage, options);
+        }
+        /**
+         * Immediately cancel a fine-tune job.
+         */
+        cancel(fineTuneId, options) {
+          return this._client.post(`/fine-tunes/${fineTuneId}/cancel`, options);
+        }
+        listEvents(fineTuneId, query, options) {
+          return this._client.get(`/fine-tunes/${fineTuneId}/events`, {
             query,
             timeout: 86400000,
             ...options,
             stream: query?.stream ?? false,
-        });
-    }
-}
-exports.FineTunes = FineTunes;
-/**
- * Note: no pagination actually occurs yet, this is for forwards-compatibility.
- */
-class FineTunesPage extends pagination_1.Page {
-}
-exports.FineTunesPage = FineTunesPage;
-(function (FineTunes) {
-    FineTunes.FineTunesPage = FineTunesAPI.FineTunesPage;
-})(FineTunes = exports.FineTunes || (exports.FineTunes = {}));
-//# sourceMappingURL=fine-tunes.js.map
+          });
+        }
+      }
+      exports.FineTunes = FineTunes;
+      /**
+       * Note: no pagination actually occurs yet, this is for forwards-compatibility.
+       */
+      class FineTunesPage extends pagination_1.Page {}
+      exports.FineTunesPage = FineTunesPage;
+      (function (FineTunes) {
+        FineTunes.FineTunesPage = FineTunesAPI.FineTunesPage;
+      })((FineTunes = exports.FineTunes || (exports.FineTunes = {})));
+      //# sourceMappingURL=fine-tunes.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 1364:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+    /***/ 1364: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-"use strict";
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.FineTuning = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const JobsAPI = __importStar(__nccwpck_require__(4900));
+      class FineTuning extends resource_1.APIResource {
+        constructor() {
+          super(...arguments);
+          this.jobs = new JobsAPI.Jobs(this._client);
+        }
+      }
+      exports.FineTuning = FineTuning;
+      (function (FineTuning) {
+        FineTuning.Jobs = JobsAPI.Jobs;
+        FineTuning.FineTuningJobsPage = JobsAPI.FineTuningJobsPage;
+        FineTuning.FineTuningJobEventsPage = JobsAPI.FineTuningJobEventsPage;
+      })((FineTuning = exports.FineTuning || (exports.FineTuning = {})));
+      //# sourceMappingURL=fine-tuning.js.map
 
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.FineTuning = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const JobsAPI = __importStar(__nccwpck_require__(4900));
-class FineTuning extends resource_1.APIResource {
-    constructor() {
-        super(...arguments);
-        this.jobs = new JobsAPI.Jobs(this._client);
-    }
-}
-exports.FineTuning = FineTuning;
-(function (FineTuning) {
-    FineTuning.Jobs = JobsAPI.Jobs;
-    FineTuning.FineTuningJobsPage = JobsAPI.FineTuningJobsPage;
-    FineTuning.FineTuningJobEventsPage = JobsAPI.FineTuningJobEventsPage;
-})(FineTuning = exports.FineTuning || (exports.FineTuning = {}));
-//# sourceMappingURL=fine-tuning.js.map
+      /***/
+    },
 
-/***/ }),
+    /***/ 4900: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-/***/ 4900:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.FineTuningJobEventsPage = exports.FineTuningJobsPage = exports.Jobs = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-const JobsAPI = __importStar(__nccwpck_require__(4900));
-const pagination_1 = __nccwpck_require__(7401);
-class Jobs extends resource_1.APIResource {
-    /**
-     * Creates a job that fine-tunes a specified model from a given dataset.
-     *
-     * Response includes details of the enqueued job including job status and the name
-     * of the fine-tuned models once complete.
-     *
-     * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)
-     */
-    create(body, options) {
-        return this._client.post('/fine_tuning/jobs', { body, ...options });
-    }
-    /**
-     * Get info about a fine-tuning job.
-     *
-     * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)
-     */
-    retrieve(fineTuningJobId, options) {
-        return this._client.get(`/fine_tuning/jobs/${fineTuningJobId}`, options);
-    }
-    list(query = {}, options) {
-        if ((0, core_1.isRequestOptions)(query)) {
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.FineTuningJobEventsPage =
+        exports.FineTuningJobsPage =
+        exports.Jobs =
+          void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      const JobsAPI = __importStar(__nccwpck_require__(4900));
+      const pagination_1 = __nccwpck_require__(7401);
+      class Jobs extends resource_1.APIResource {
+        /**
+         * Creates a job that fine-tunes a specified model from a given dataset.
+         *
+         * Response includes details of the enqueued job including job status and the name
+         * of the fine-tuned models once complete.
+         *
+         * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)
+         */
+        create(body, options) {
+          return this._client.post("/fine_tuning/jobs", { body, ...options });
+        }
+        /**
+         * Get info about a fine-tuning job.
+         *
+         * [Learn more about fine-tuning](https://platform.openai.com/docs/guides/fine-tuning)
+         */
+        retrieve(fineTuningJobId, options) {
+          return this._client.get(
+            `/fine_tuning/jobs/${fineTuningJobId}`,
+            options
+          );
+        }
+        list(query = {}, options) {
+          if ((0, core_1.isRequestOptions)(query)) {
             return this.list({}, query);
+          }
+          return this._client.getAPIList(
+            "/fine_tuning/jobs",
+            FineTuningJobsPage,
+            { query, ...options }
+          );
         }
-        return this._client.getAPIList('/fine_tuning/jobs', FineTuningJobsPage, { query, ...options });
-    }
-    /**
-     * Immediately cancel a fine-tune job.
-     */
-    cancel(fineTuningJobId, options) {
-        return this._client.post(`/fine_tuning/jobs/${fineTuningJobId}/cancel`, options);
-    }
-    listEvents(fineTuningJobId, query = {}, options) {
-        if ((0, core_1.isRequestOptions)(query)) {
+        /**
+         * Immediately cancel a fine-tune job.
+         */
+        cancel(fineTuningJobId, options) {
+          return this._client.post(
+            `/fine_tuning/jobs/${fineTuningJobId}/cancel`,
+            options
+          );
+        }
+        listEvents(fineTuningJobId, query = {}, options) {
+          if ((0, core_1.isRequestOptions)(query)) {
             return this.listEvents(fineTuningJobId, {}, query);
+          }
+          return this._client.getAPIList(
+            `/fine_tuning/jobs/${fineTuningJobId}/events`,
+            FineTuningJobEventsPage,
+            {
+              query,
+              ...options,
+            }
+          );
         }
-        return this._client.getAPIList(`/fine_tuning/jobs/${fineTuningJobId}/events`, FineTuningJobEventsPage, {
-            query,
-            ...options,
-        });
-    }
-}
-exports.Jobs = Jobs;
-class FineTuningJobsPage extends pagination_1.CursorPage {
-}
-exports.FineTuningJobsPage = FineTuningJobsPage;
-class FineTuningJobEventsPage extends pagination_1.CursorPage {
-}
-exports.FineTuningJobEventsPage = FineTuningJobEventsPage;
-(function (Jobs) {
-    Jobs.FineTuningJobsPage = JobsAPI.FineTuningJobsPage;
-    Jobs.FineTuningJobEventsPage = JobsAPI.FineTuningJobEventsPage;
-})(Jobs = exports.Jobs || (exports.Jobs = {}));
-//# sourceMappingURL=jobs.js.map
+      }
+      exports.Jobs = Jobs;
+      class FineTuningJobsPage extends pagination_1.CursorPage {}
+      exports.FineTuningJobsPage = FineTuningJobsPage;
+      class FineTuningJobEventsPage extends pagination_1.CursorPage {}
+      exports.FineTuningJobEventsPage = FineTuningJobEventsPage;
+      (function (Jobs) {
+        Jobs.FineTuningJobsPage = JobsAPI.FineTuningJobsPage;
+        Jobs.FineTuningJobEventsPage = JobsAPI.FineTuningJobEventsPage;
+      })((Jobs = exports.Jobs || (exports.Jobs = {})));
+      //# sourceMappingURL=jobs.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 2621:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+    /***/ 2621: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
 
-"use strict";
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Images = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const core_1 = __nccwpck_require__(1798);
+      class Images extends resource_1.APIResource {
+        /**
+         * Creates a variation of a given image.
+         */
+        createVariation(body, options) {
+          return this._client.post(
+            "/images/variations",
+            (0, core_1.multipartFormRequestOptions)({ body, ...options })
+          );
+        }
+        /**
+         * Creates an edited or extended image given an original image and a prompt.
+         */
+        edit(body, options) {
+          return this._client.post(
+            "/images/edits",
+            (0, core_1.multipartFormRequestOptions)({ body, ...options })
+          );
+        }
+        /**
+         * Creates an image given a prompt.
+         */
+        generate(body, options) {
+          return this._client.post("/images/generations", { body, ...options });
+        }
+      }
+      exports.Images = Images;
+      (function (Images) {})(
+        (Images = exports.Images || (exports.Images = {}))
+      );
+      //# sourceMappingURL=images.js.map
 
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Images = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const core_1 = __nccwpck_require__(1798);
-class Images extends resource_1.APIResource {
-    /**
-     * Creates a variation of a given image.
-     */
-    createVariation(body, options) {
-        return this._client.post('/images/variations', (0, core_1.multipartFormRequestOptions)({ body, ...options }));
-    }
-    /**
-     * Creates an edited or extended image given an original image and a prompt.
-     */
-    edit(body, options) {
-        return this._client.post('/images/edits', (0, core_1.multipartFormRequestOptions)({ body, ...options }));
-    }
-    /**
-     * Creates an image given a prompt.
-     */
-    generate(body, options) {
-        return this._client.post('/images/generations', { body, ...options });
-    }
-}
-exports.Images = Images;
-(function (Images) {
-})(Images = exports.Images || (exports.Images = {}));
-//# sourceMappingURL=images.js.map
+      /***/
+    },
 
-/***/ }),
+    /***/ 5690: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-/***/ 5690:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) k2 = k;
+              o[k2] = m[k];
+            });
+      var __exportStar =
+        (this && this.__exportStar) ||
+        function (m, exports) {
+          for (var p in m)
+            if (
+              p !== "default" &&
+              !Object.prototype.hasOwnProperty.call(exports, p)
+            )
+              __createBinding(exports, m, p);
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Moderations =
+        exports.Models =
+        exports.ModelsPage =
+        exports.Images =
+        exports.FineTuning =
+        exports.FineTunes =
+        exports.FineTunesPage =
+        exports.Files =
+        exports.FileObjectsPage =
+        exports.Edits =
+        exports.Embeddings =
+        exports.Completions =
+        exports.Beta =
+        exports.Audio =
+          void 0;
+      __exportStar(__nccwpck_require__(8240), exports);
+      __exportStar(__nccwpck_require__(4866), exports);
+      var audio_1 = __nccwpck_require__(6376);
+      Object.defineProperty(exports, "Audio", {
+        enumerable: true,
+        get: function () {
+          return audio_1.Audio;
+        },
+      });
+      var beta_1 = __nccwpck_require__(853);
+      Object.defineProperty(exports, "Beta", {
+        enumerable: true,
+        get: function () {
+          return beta_1.Beta;
+        },
+      });
+      var completions_1 = __nccwpck_require__(9327);
+      Object.defineProperty(exports, "Completions", {
+        enumerable: true,
+        get: function () {
+          return completions_1.Completions;
+        },
+      });
+      var embeddings_1 = __nccwpck_require__(8064);
+      Object.defineProperty(exports, "Embeddings", {
+        enumerable: true,
+        get: function () {
+          return embeddings_1.Embeddings;
+        },
+      });
+      var edits_1 = __nccwpck_require__(4259);
+      Object.defineProperty(exports, "Edits", {
+        enumerable: true,
+        get: function () {
+          return edits_1.Edits;
+        },
+      });
+      var files_1 = __nccwpck_require__(3873);
+      Object.defineProperty(exports, "FileObjectsPage", {
+        enumerable: true,
+        get: function () {
+          return files_1.FileObjectsPage;
+        },
+      });
+      Object.defineProperty(exports, "Files", {
+        enumerable: true,
+        get: function () {
+          return files_1.Files;
+        },
+      });
+      var fine_tunes_1 = __nccwpck_require__(3379);
+      Object.defineProperty(exports, "FineTunesPage", {
+        enumerable: true,
+        get: function () {
+          return fine_tunes_1.FineTunesPage;
+        },
+      });
+      Object.defineProperty(exports, "FineTunes", {
+        enumerable: true,
+        get: function () {
+          return fine_tunes_1.FineTunes;
+        },
+      });
+      var fine_tuning_1 = __nccwpck_require__(1364);
+      Object.defineProperty(exports, "FineTuning", {
+        enumerable: true,
+        get: function () {
+          return fine_tuning_1.FineTuning;
+        },
+      });
+      var images_1 = __nccwpck_require__(2621);
+      Object.defineProperty(exports, "Images", {
+        enumerable: true,
+        get: function () {
+          return images_1.Images;
+        },
+      });
+      var models_1 = __nccwpck_require__(6467);
+      Object.defineProperty(exports, "ModelsPage", {
+        enumerable: true,
+        get: function () {
+          return models_1.ModelsPage;
+        },
+      });
+      Object.defineProperty(exports, "Models", {
+        enumerable: true,
+        get: function () {
+          return models_1.Models;
+        },
+      });
+      var moderations_1 = __nccwpck_require__(2085);
+      Object.defineProperty(exports, "Moderations", {
+        enumerable: true,
+        get: function () {
+          return moderations_1.Moderations;
+        },
+      });
+      //# sourceMappingURL=index.js.map
 
-"use strict";
+      /***/
+    },
 
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-}));
-var __exportStar = (this && this.__exportStar) || function(m, exports) {
-    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Moderations = exports.Models = exports.ModelsPage = exports.Images = exports.FineTuning = exports.FineTunes = exports.FineTunesPage = exports.Files = exports.FileObjectsPage = exports.Edits = exports.Embeddings = exports.Completions = exports.Beta = exports.Audio = void 0;
-__exportStar(__nccwpck_require__(8240), exports);
-__exportStar(__nccwpck_require__(4866), exports);
-var audio_1 = __nccwpck_require__(6376);
-Object.defineProperty(exports, "Audio", ({ enumerable: true, get: function () { return audio_1.Audio; } }));
-var beta_1 = __nccwpck_require__(853);
-Object.defineProperty(exports, "Beta", ({ enumerable: true, get: function () { return beta_1.Beta; } }));
-var completions_1 = __nccwpck_require__(9327);
-Object.defineProperty(exports, "Completions", ({ enumerable: true, get: function () { return completions_1.Completions; } }));
-var embeddings_1 = __nccwpck_require__(8064);
-Object.defineProperty(exports, "Embeddings", ({ enumerable: true, get: function () { return embeddings_1.Embeddings; } }));
-var edits_1 = __nccwpck_require__(4259);
-Object.defineProperty(exports, "Edits", ({ enumerable: true, get: function () { return edits_1.Edits; } }));
-var files_1 = __nccwpck_require__(3873);
-Object.defineProperty(exports, "FileObjectsPage", ({ enumerable: true, get: function () { return files_1.FileObjectsPage; } }));
-Object.defineProperty(exports, "Files", ({ enumerable: true, get: function () { return files_1.Files; } }));
-var fine_tunes_1 = __nccwpck_require__(3379);
-Object.defineProperty(exports, "FineTunesPage", ({ enumerable: true, get: function () { return fine_tunes_1.FineTunesPage; } }));
-Object.defineProperty(exports, "FineTunes", ({ enumerable: true, get: function () { return fine_tunes_1.FineTunes; } }));
-var fine_tuning_1 = __nccwpck_require__(1364);
-Object.defineProperty(exports, "FineTuning", ({ enumerable: true, get: function () { return fine_tuning_1.FineTuning; } }));
-var images_1 = __nccwpck_require__(2621);
-Object.defineProperty(exports, "Images", ({ enumerable: true, get: function () { return images_1.Images; } }));
-var models_1 = __nccwpck_require__(6467);
-Object.defineProperty(exports, "ModelsPage", ({ enumerable: true, get: function () { return models_1.ModelsPage; } }));
-Object.defineProperty(exports, "Models", ({ enumerable: true, get: function () { return models_1.Models; } }));
-var moderations_1 = __nccwpck_require__(2085);
-Object.defineProperty(exports, "Moderations", ({ enumerable: true, get: function () { return moderations_1.Moderations; } }));
-//# sourceMappingURL=index.js.map
+    /***/ 6467: /***/ function (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) {
+      "use strict";
 
-/***/ }),
+      // File generated from our OpenAPI spec by Stainless.
+      var __createBinding =
+        (this && this.__createBinding) ||
+        (Object.create
+          ? function (o, m, k, k2) {
+              if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null)
+            for (var k in mod)
+              if (
+                k !== "default" &&
+                Object.prototype.hasOwnProperty.call(mod, k)
+              )
+                __createBinding(result, mod, k);
+          __setModuleDefault(result, mod);
+          return result;
+        };
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.ModelsPage = exports.Models = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      const ModelsAPI = __importStar(__nccwpck_require__(6467));
+      const pagination_1 = __nccwpck_require__(7401);
+      class Models extends resource_1.APIResource {
+        /**
+         * Retrieves a model instance, providing basic information about the model such as
+         * the owner and permissioning.
+         */
+        retrieve(model, options) {
+          return this._client.get(`/models/${model}`, options);
+        }
+        /**
+         * Lists the currently available models, and provides basic information about each
+         * one such as the owner and availability.
+         */
+        list(options) {
+          return this._client.getAPIList("/models", ModelsPage, options);
+        }
+        /**
+         * Delete a fine-tuned model. You must have the Owner role in your organization to
+         * delete a model.
+         */
+        del(model, options) {
+          return this._client.delete(`/models/${model}`, options);
+        }
+      }
+      exports.Models = Models;
+      /**
+       * Note: no pagination actually occurs yet, this is for forwards-compatibility.
+       */
+      class ModelsPage extends pagination_1.Page {}
+      exports.ModelsPage = ModelsPage;
+      (function (Models) {
+        Models.ModelsPage = ModelsAPI.ModelsPage;
+      })((Models = exports.Models || (exports.Models = {})));
+      //# sourceMappingURL=models.js.map
 
-/***/ 6467:
-/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+      /***/
+    },
 
-"use strict";
+    /***/ 2085: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
 
-// File generated from our OpenAPI spec by Stainless.
-var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) 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 (k2 === undefined) 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 (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-};
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.ModelsPage = exports.Models = void 0;
-const resource_1 = __nccwpck_require__(9593);
-const ModelsAPI = __importStar(__nccwpck_require__(6467));
-const pagination_1 = __nccwpck_require__(7401);
-class Models extends resource_1.APIResource {
-    /**
-     * Retrieves a model instance, providing basic information about the model such as
-     * the owner and permissioning.
-     */
-    retrieve(model, options) {
-        return this._client.get(`/models/${model}`, options);
-    }
-    /**
-     * Lists the currently available models, and provides basic information about each
-     * one such as the owner and availability.
-     */
-    list(options) {
-        return this._client.getAPIList('/models', ModelsPage, options);
-    }
-    /**
-     * Delete a fine-tuned model. You must have the Owner role in your organization to
-     * delete a model.
-     */
-    del(model, options) {
-        return this._client.delete(`/models/${model}`, options);
-    }
-}
-exports.Models = Models;
-/**
- * Note: no pagination actually occurs yet, this is for forwards-compatibility.
- */
-class ModelsPage extends pagination_1.Page {
-}
-exports.ModelsPage = ModelsPage;
-(function (Models) {
-    Models.ModelsPage = ModelsAPI.ModelsPage;
-})(Models = exports.Models || (exports.Models = {}));
-//# sourceMappingURL=models.js.map
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Moderations = void 0;
+      const resource_1 = __nccwpck_require__(9593);
+      class Moderations extends resource_1.APIResource {
+        /**
+         * Classifies if text violates OpenAI's Content Policy
+         */
+        create(body, options) {
+          return this._client.post("/moderations", { body, ...options });
+        }
+      }
+      exports.Moderations = Moderations;
+      (function (Moderations) {})(
+        (Moderations = exports.Moderations || (exports.Moderations = {}))
+      );
+      //# sourceMappingURL=moderations.js.map
 
-/***/ }),
+      /***/
+    },
 
-/***/ 2085:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
+    /***/ 4866: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
 
-"use strict";
+      // File generated from our OpenAPI spec by Stainless.
+      Object.defineProperty(exports, "__esModule", { value: true });
+      //# sourceMappingURL=shared.js.map
 
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Moderations = void 0;
-const resource_1 = __nccwpck_require__(9593);
-class Moderations extends resource_1.APIResource {
-    /**
-     * Classifies if text violates OpenAI's Content Policy
-     */
-    create(body, options) {
-        return this._client.post('/moderations', { body, ...options });
-    }
-}
-exports.Moderations = Moderations;
-(function (Moderations) {
-})(Moderations = exports.Moderations || (exports.Moderations = {}));
-//# sourceMappingURL=moderations.js.map
+      /***/
+    },
 
-/***/ }),
+    /***/ 884: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
 
-/***/ 4866:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-// File generated from our OpenAPI spec by Stainless.
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-//# sourceMappingURL=shared.js.map
-
-/***/ }),
-
-/***/ 884:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.Stream = void 0;
-const index_1 = __nccwpck_require__(6678);
-const error_1 = __nccwpck_require__(8905);
-const error_2 = __nccwpck_require__(8905);
-class Stream {
-    constructor(iterator, controller) {
-        this.iterator = iterator;
-        this.controller = controller;
-    }
-    static fromSSEResponse(response, controller) {
-        let consumed = false;
-        const decoder = new SSEDecoder();
-        async function* iterMessages() {
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.Stream = void 0;
+      const index_1 = __nccwpck_require__(6678);
+      const error_1 = __nccwpck_require__(8905);
+      const error_2 = __nccwpck_require__(8905);
+      class Stream {
+        constructor(iterator, controller) {
+          this.iterator = iterator;
+          this.controller = controller;
+        }
+        static fromSSEResponse(response, controller) {
+          let consumed = false;
+          const decoder = new SSEDecoder();
+          async function* iterMessages() {
             if (!response.body) {
-                controller.abort();
-                throw new error_1.OpenAIError(`Attempted to iterate over a response with no body`);
+              controller.abort();
+              throw new error_1.OpenAIError(
+                `Attempted to iterate over a response with no body`
+              );
             }
             const lineDecoder = new LineDecoder();
             const iter = readableStreamAsyncIterable(response.body);
             for await (const chunk of iter) {
-                for (const line of lineDecoder.decode(chunk)) {
-                    const sse = decoder.decode(line);
-                    if (sse)
-                        yield sse;
-                }
+              for (const line of lineDecoder.decode(chunk)) {
+                const sse = decoder.decode(line);
+                if (sse) yield sse;
+              }
             }
             for (const line of lineDecoder.flush()) {
-                const sse = decoder.decode(line);
-                if (sse)
-                    yield sse;
+              const sse = decoder.decode(line);
+              if (sse) yield sse;
             }
-        }
-        async function* iterator() {
+          }
+          async function* iterator() {
             if (consumed) {
-                throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');
+              throw new Error(
+                "Cannot iterate over a consumed stream, use `.tee()` to split the stream."
+              );
             }
             consumed = true;
             let done = false;
             try {
-                for await (const sse of iterMessages()) {
-                    if (done)
-                        continue;
-                    if (sse.data.startsWith('[DONE]')) {
-                        done = true;
-                        continue;
-                    }
-                    if (sse.event === null) {
-                        let data;
-                        try {
-                            data = JSON.parse(sse.data);
-                        }
-                        catch (e) {
-                            console.error(`Could not parse message into JSON:`, sse.data);
-                            console.error(`From chunk:`, sse.raw);
-                            throw e;
-                        }
-                        if (data && data.error) {
-                            throw new error_2.APIError(undefined, data.error, undefined, undefined);
-                        }
-                        yield data;
-                    }
+              for await (const sse of iterMessages()) {
+                if (done) continue;
+                if (sse.data.startsWith("[DONE]")) {
+                  done = true;
+                  continue;
                 }
-                done = true;
-            }
-            catch (e) {
-                // If the user calls `stream.controller.abort()`, we should exit without throwing.
-                if (e instanceof Error && e.name === 'AbortError')
-                    return;
-                throw e;
-            }
-            finally {
-                // If the user `break`s, abort the ongoing request.
-                if (!done)
-                    controller.abort();
+                if (sse.event === null) {
+                  let data;
+                  try {
+                    data = JSON.parse(sse.data);
+                  } catch (e) {
+                    console.error(
+                      `Could not parse message into JSON:`,
+                      sse.data
+                    );
+                    console.error(`From chunk:`, sse.raw);
+                    throw e;
+                  }
+                  if (data && data.error) {
+                    throw new error_2.APIError(
+                      undefined,
+                      data.error,
+                      undefined,
+                      undefined
+                    );
+                  }
+                  yield data;
+                }
+              }
+              done = true;
+            } catch (e) {
+              // If the user calls `stream.controller.abort()`, we should exit without throwing.
+              if (e instanceof Error && e.name === "AbortError") return;
+              throw e;
+            } finally {
+              // If the user `break`s, abort the ongoing request.
+              if (!done) controller.abort();
             }
+          }
+          return new Stream(iterator, controller);
         }
-        return new Stream(iterator, controller);
-    }
-    /**
-     * Generates a Stream from a newline-separated ReadableStream
-     * where each item is a JSON value.
-     */
-    static fromReadableStream(readableStream, controller) {
-        let consumed = false;
-        async function* iterLines() {
+        /**
+         * Generates a Stream from a newline-separated ReadableStream
+         * where each item is a JSON value.
+         */
+        static fromReadableStream(readableStream, controller) {
+          let consumed = false;
+          async function* iterLines() {
             const lineDecoder = new LineDecoder();
             const iter = readableStreamAsyncIterable(readableStream);
             for await (const chunk of iter) {
-                for (const line of lineDecoder.decode(chunk)) {
-                    yield line;
-                }
+              for (const line of lineDecoder.decode(chunk)) {
+                yield line;
+              }
             }
             for (const line of lineDecoder.flush()) {
-                yield line;
+              yield line;
             }
-        }
-        async function* iterator() {
+          }
+          async function* iterator() {
             if (consumed) {
-                throw new Error('Cannot iterate over a consumed stream, use `.tee()` to split the stream.');
+              throw new Error(
+                "Cannot iterate over a consumed stream, use `.tee()` to split the stream."
+              );
             }
             consumed = true;
             let done = false;
             try {
-                for await (const line of iterLines()) {
-                    if (done)
-                        continue;
-                    if (line)
-                        yield JSON.parse(line);
-                }
-                done = true;
-            }
-            catch (e) {
-                // If the user calls `stream.controller.abort()`, we should exit without throwing.
-                if (e instanceof Error && e.name === 'AbortError')
-                    return;
-                throw e;
-            }
-            finally {
-                // If the user `break`s, abort the ongoing request.
-                if (!done)
-                    controller.abort();
+              for await (const line of iterLines()) {
+                if (done) continue;
+                if (line) yield JSON.parse(line);
+              }
+              done = true;
+            } catch (e) {
+              // If the user calls `stream.controller.abort()`, we should exit without throwing.
+              if (e instanceof Error && e.name === "AbortError") return;
+              throw e;
+            } finally {
+              // If the user `break`s, abort the ongoing request.
+              if (!done) controller.abort();
             }
+          }
+          return new Stream(iterator, controller);
         }
-        return new Stream(iterator, controller);
-    }
-    [Symbol.asyncIterator]() {
-        return this.iterator();
-    }
-    /**
-     * Splits the stream into two streams which can be
-     * independently read from at different speeds.
-     */
-    tee() {
-        const left = [];
-        const right = [];
-        const iterator = this.iterator();
-        const teeIterator = (queue) => {
+        [Symbol.asyncIterator]() {
+          return this.iterator();
+        }
+        /**
+         * Splits the stream into two streams which can be
+         * independently read from at different speeds.
+         */
+        tee() {
+          const left = [];
+          const right = [];
+          const iterator = this.iterator();
+          const teeIterator = (queue) => {
             return {
-                next: () => {
-                    if (queue.length === 0) {
-                        const result = iterator.next();
-                        left.push(result);
-                        right.push(result);
-                    }
-                    return queue.shift();
-                },
+              next: () => {
+                if (queue.length === 0) {
+                  const result = iterator.next();
+                  left.push(result);
+                  right.push(result);
+                }
+                return queue.shift();
+              },
             };
-        };
-        return [
+          };
+          return [
             new Stream(() => teeIterator(left), this.controller),
             new Stream(() => teeIterator(right), this.controller),
-        ];
-    }
-    /**
-     * Converts this stream to a newline-separated ReadableStream of
-     * JSON stringified values in the stream
-     * which can be turned back into a Stream with `Stream.fromReadableStream()`.
-     */
-    toReadableStream() {
-        const self = this;
-        let iter;
-        const encoder = new TextEncoder();
-        return new index_1.ReadableStream({
+          ];
+        }
+        /**
+         * Converts this stream to a newline-separated ReadableStream of
+         * JSON stringified values in the stream
+         * which can be turned back into a Stream with `Stream.fromReadableStream()`.
+         */
+        toReadableStream() {
+          const self = this;
+          let iter;
+          const encoder = new TextEncoder();
+          return new index_1.ReadableStream({
             async start() {
-                iter = self[Symbol.asyncIterator]();
+              iter = self[Symbol.asyncIterator]();
             },
             async pull(ctrl) {
-                try {
-                    const { value, done } = await iter.next();
-                    if (done)
-                        return ctrl.close();
-                    const bytes = encoder.encode(JSON.stringify(value) + '\n');
-                    ctrl.enqueue(bytes);
-                }
-                catch (err) {
-                    ctrl.error(err);
-                }
+              try {
+                const { value, done } = await iter.next();
+                if (done) return ctrl.close();
+                const bytes = encoder.encode(JSON.stringify(value) + "\n");
+                ctrl.enqueue(bytes);
+              } catch (err) {
+                ctrl.error(err);
+              }
             },
             async cancel() {
-                await iter.return?.();
+              await iter.return?.();
             },
-        });
-    }
-}
-exports.Stream = Stream;
-class SSEDecoder {
-    constructor() {
-        this.event = null;
-        this.data = [];
-        this.chunks = [];
-    }
-    decode(line) {
-        if (line.endsWith('\r')) {
-            line = line.substring(0, line.length - 1);
+          });
         }
-        if (!line) {
+      }
+      exports.Stream = Stream;
+      class SSEDecoder {
+        constructor() {
+          this.event = null;
+          this.data = [];
+          this.chunks = [];
+        }
+        decode(line) {
+          if (line.endsWith("\r")) {
+            line = line.substring(0, line.length - 1);
+          }
+          if (!line) {
             // empty line and we didn't previously encounter any messages
-            if (!this.event && !this.data.length)
-                return null;
+            if (!this.event && !this.data.length) return null;
             const sse = {
-                event: this.event,
-                data: this.data.join('\n'),
-                raw: this.chunks,
+              event: this.event,
+              data: this.data.join("\n"),
+              raw: this.chunks,
             };
             this.event = null;
             this.data = [];
             this.chunks = [];
             return sse;
-        }
-        this.chunks.push(line);
-        if (line.startsWith(':')) {
+          }
+          this.chunks.push(line);
+          if (line.startsWith(":")) {
             return null;
-        }
-        let [fieldname, _, value] = partition(line, ':');
-        if (value.startsWith(' ')) {
+          }
+          let [fieldname, _, value] = partition(line, ":");
+          if (value.startsWith(" ")) {
             value = value.substring(1);
-        }
-        if (fieldname === 'event') {
+          }
+          if (fieldname === "event") {
             this.event = value;
-        }
-        else if (fieldname === 'data') {
+          } else if (fieldname === "data") {
             this.data.push(value);
+          }
+          return null;
         }
-        return null;
-    }
-}
-/**
- * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally
- * reading lines from text.
- *
- * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258
- */
-class LineDecoder {
-    constructor() {
-        this.buffer = [];
-        this.trailingCR = false;
-    }
-    decode(chunk) {
-        let text = this.decodeText(chunk);
-        if (this.trailingCR) {
-            text = '\r' + text;
+      }
+      /**
+       * A re-implementation of httpx's `LineDecoder` in Python that handles incrementally
+       * reading lines from text.
+       *
+       * https://github.com/encode/httpx/blob/920333ea98118e9cf617f246905d7b202510941c/httpx/_decoders.py#L258
+       */
+      class LineDecoder {
+        constructor() {
+          this.buffer = [];
+          this.trailingCR = false;
+        }
+        decode(chunk) {
+          let text = this.decodeText(chunk);
+          if (this.trailingCR) {
+            text = "\r" + text;
             this.trailingCR = false;
-        }
-        if (text.endsWith('\r')) {
+          }
+          if (text.endsWith("\r")) {
             this.trailingCR = true;
             text = text.slice(0, -1);
-        }
-        if (!text) {
+          }
+          if (!text) {
             return [];
-        }
-        const trailingNewline = LineDecoder.NEWLINE_CHARS.has(text[text.length - 1] || '');
-        let lines = text.split(LineDecoder.NEWLINE_REGEXP);
-        if (lines.length === 1 && !trailingNewline) {
+          }
+          const trailingNewline = LineDecoder.NEWLINE_CHARS.has(
+            text[text.length - 1] || ""
+          );
+          let lines = text.split(LineDecoder.NEWLINE_REGEXP);
+          if (lines.length === 1 && !trailingNewline) {
             this.buffer.push(lines[0]);
             return [];
-        }
-        if (this.buffer.length > 0) {
-            lines = [this.buffer.join('') + lines[0], ...lines.slice(1)];
+          }
+          if (this.buffer.length > 0) {
+            lines = [this.buffer.join("") + lines[0], ...lines.slice(1)];
             this.buffer = [];
+          }
+          if (!trailingNewline) {
+            this.buffer = [lines.pop() || ""];
+          }
+          return lines;
         }
-        if (!trailingNewline) {
-            this.buffer = [lines.pop() || ''];
-        }
-        return lines;
-    }
-    decodeText(bytes) {
-        if (bytes == null)
-            return '';
-        if (typeof bytes === 'string')
-            return bytes;
-        // Node:
-        if (typeof Buffer !== 'undefined') {
+        decodeText(bytes) {
+          if (bytes == null) return "";
+          if (typeof bytes === "string") return bytes;
+          // Node:
+          if (typeof Buffer !== "undefined") {
             if (bytes instanceof Buffer) {
-                return bytes.toString();
+              return bytes.toString();
             }
             if (bytes instanceof Uint8Array) {
-                return Buffer.from(bytes).toString();
+              return Buffer.from(bytes).toString();
             }
-            throw new error_1.OpenAIError(`Unexpected: received non-Uint8Array (${bytes.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`);
-        }
-        // Browser
-        if (typeof TextDecoder !== 'undefined') {
+            throw new error_1.OpenAIError(
+              `Unexpected: received non-Uint8Array (${bytes.constructor.name}) stream chunk in an environment with a global "Buffer" defined, which this library assumes to be Node. Please report this error.`
+            );
+          }
+          // Browser
+          if (typeof TextDecoder !== "undefined") {
             if (bytes instanceof Uint8Array || bytes instanceof ArrayBuffer) {
-                this.textDecoder ?? (this.textDecoder = new TextDecoder('utf8'));
-                return this.textDecoder.decode(bytes);
+              this.textDecoder ?? (this.textDecoder = new TextDecoder("utf8"));
+              return this.textDecoder.decode(bytes);
             }
-            throw new error_1.OpenAIError(`Unexpected: received non-Uint8Array/ArrayBuffer (${bytes.constructor.name}) in a web platform. Please report this error.`);
+            throw new error_1.OpenAIError(
+              `Unexpected: received non-Uint8Array/ArrayBuffer (${bytes.constructor.name}) in a web platform. Please report this error.`
+            );
+          }
+          throw new error_1.OpenAIError(
+            `Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.`
+          );
         }
-        throw new error_1.OpenAIError(`Unexpected: neither Buffer nor TextDecoder are available as globals. Please report this error.`);
-    }
-    flush() {
-        if (!this.buffer.length && !this.trailingCR) {
+        flush() {
+          if (!this.buffer.length && !this.trailingCR) {
             return [];
+          }
+          const lines = [this.buffer.join("")];
+          this.buffer = [];
+          this.trailingCR = false;
+          return lines;
         }
-        const lines = [this.buffer.join('')];
-        this.buffer = [];
-        this.trailingCR = false;
-        return lines;
-    }
-}
-// prettier-ignore
-LineDecoder.NEWLINE_CHARS = new Set(['\n', '\r', '\x0b', '\x0c', '\x1c', '\x1d', '\x1e', '\x85', '\u2028', '\u2029']);
-LineDecoder.NEWLINE_REGEXP = /\r\n|[\n\r\x0b\x0c\x1c\x1d\x1e\x85\u2028\u2029]/g;
-function partition(str, delimiter) {
-    const index = str.indexOf(delimiter);
-    if (index !== -1) {
-        return [str.substring(0, index), delimiter, str.substring(index + delimiter.length)];
-    }
-    return [str, '', ''];
-}
-/**
- * Most browsers don't yet have async iterable support for ReadableStream,
- * and Node has a very different way of reading bytes from its "ReadableStream".
- *
- * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490
- */
-function readableStreamAsyncIterable(stream) {
-    if (stream[Symbol.asyncIterator])
-        return stream;
-    const reader = stream.getReader();
-    return {
-        async next() {
+      }
+      // prettier-ignore
+      LineDecoder.NEWLINE_CHARS = new Set(['\n', '\r', '\x0b', '\x0c', '\x1c', '\x1d', '\x1e', '\x85', '\u2028', '\u2029']);
+      LineDecoder.NEWLINE_REGEXP =
+        /\r\n|[\n\r\x0b\x0c\x1c\x1d\x1e\x85\u2028\u2029]/g;
+      function partition(str, delimiter) {
+        const index = str.indexOf(delimiter);
+        if (index !== -1) {
+          return [
+            str.substring(0, index),
+            delimiter,
+            str.substring(index + delimiter.length),
+          ];
+        }
+        return [str, "", ""];
+      }
+      /**
+       * Most browsers don't yet have async iterable support for ReadableStream,
+       * and Node has a very different way of reading bytes from its "ReadableStream".
+       *
+       * This polyfill was pulled from https://github.com/MattiasBuelens/web-streams-polyfill/pull/122#issuecomment-1627354490
+       */
+      function readableStreamAsyncIterable(stream) {
+        if (stream[Symbol.asyncIterator]) return stream;
+        const reader = stream.getReader();
+        return {
+          async next() {
             try {
-                const result = await reader.read();
-                if (result?.done)
-                    reader.releaseLock(); // release lock when stream becomes closed
-                return result;
+              const result = await reader.read();
+              if (result?.done) reader.releaseLock(); // release lock when stream becomes closed
+              return result;
+            } catch (e) {
+              reader.releaseLock(); // release lock when stream becomes errored
+              throw e;
             }
-            catch (e) {
-                reader.releaseLock(); // release lock when stream becomes errored
-                throw e;
-            }
-        },
-        async return() {
+          },
+          async return() {
             const cancelPromise = reader.cancel();
             reader.releaseLock();
             await cancelPromise;
             return { done: true, value: undefined };
-        },
-        [Symbol.asyncIterator]() {
+          },
+          [Symbol.asyncIterator]() {
             return this;
+          },
+        };
+      }
+      //# sourceMappingURL=streaming.js.map
+
+      /***/
+    },
+
+    /***/ 6800: /***/ (
+      __unused_webpack_module,
+      exports,
+      __nccwpck_require__
+    ) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.createForm =
+        exports.multipartFormRequestOptions =
+        exports.maybeMultipartFormRequestOptions =
+        exports.isMultipartBody =
+        exports.toFile =
+        exports.isUploadable =
+        exports.isBlobLike =
+        exports.isFileLike =
+        exports.isResponseLike =
+        exports.fileFromPath =
+          void 0;
+      const index_1 = __nccwpck_require__(6678);
+      var index_2 = __nccwpck_require__(6678);
+      Object.defineProperty(exports, "fileFromPath", {
+        enumerable: true,
+        get: function () {
+          return index_2.fileFromPath;
         },
-    };
-}
-//# sourceMappingURL=streaming.js.map
-
-/***/ }),
-
-/***/ 6800:
-/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.createForm = exports.multipartFormRequestOptions = exports.maybeMultipartFormRequestOptions = exports.isMultipartBody = exports.toFile = exports.isUploadable = exports.isBlobLike = exports.isFileLike = exports.isResponseLike = exports.fileFromPath = void 0;
-const index_1 = __nccwpck_require__(6678);
-var index_2 = __nccwpck_require__(6678);
-Object.defineProperty(exports, "fileFromPath", ({ enumerable: true, get: function () { return index_2.fileFromPath; } }));
-const isResponseLike = (value) => value != null &&
-    typeof value === 'object' &&
-    typeof value.url === 'string' &&
-    typeof value.blob === 'function';
-exports.isResponseLike = isResponseLike;
-const isFileLike = (value) => value != null &&
-    typeof value === 'object' &&
-    typeof value.name === 'string' &&
-    typeof value.lastModified === 'number' &&
-    (0, exports.isBlobLike)(value);
-exports.isFileLike = isFileLike;
-/**
- * The BlobLike type omits arrayBuffer() because @types/node-fetch@^2.6.4 lacks it; but this check
- * adds the arrayBuffer() method type because it is available and used at runtime
- */
-const isBlobLike = (value) => value != null &&
-    typeof value === 'object' &&
-    typeof value.size === 'number' &&
-    typeof value.type === 'string' &&
-    typeof value.text === 'function' &&
-    typeof value.slice === 'function' &&
-    typeof value.arrayBuffer === 'function';
-exports.isBlobLike = isBlobLike;
-const isUploadable = (value) => {
-    return (0, exports.isFileLike)(value) || (0, exports.isResponseLike)(value) || (0, index_1.isFsReadStream)(value);
-};
-exports.isUploadable = isUploadable;
-/**
- * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats
- * @param value the raw content of the file.  Can be an {@link Uploadable}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s
- * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible
- * @param {Object=} options additional properties
- * @param {string=} options.type the MIME type of the content
- * @param {number=} options.lastModified the last modified timestamp
- * @returns a {@link File} with the given properties
- */
-async function toFile(value, name, options = {}) {
-    // If it's a promise, resolve it.
-    value = await value;
-    if ((0, exports.isResponseLike)(value)) {
-        const blob = await value.blob();
-        name || (name = new URL(value.url).pathname.split(/[\\/]/).pop() ?? 'unknown_file');
-        return new index_1.File([blob], name, options);
-    }
-    const bits = await getBytes(value);
-    name || (name = getName(value) ?? 'unknown_file');
-    if (!options.type) {
-        const type = bits[0]?.type;
-        if (typeof type === 'string') {
+      });
+      const isResponseLike = (value) =>
+        value != null &&
+        typeof value === "object" &&
+        typeof value.url === "string" &&
+        typeof value.blob === "function";
+      exports.isResponseLike = isResponseLike;
+      const isFileLike = (value) =>
+        value != null &&
+        typeof value === "object" &&
+        typeof value.name === "string" &&
+        typeof value.lastModified === "number" &&
+        (0, exports.isBlobLike)(value);
+      exports.isFileLike = isFileLike;
+      /**
+       * The BlobLike type omits arrayBuffer() because @types/node-fetch@^2.6.4 lacks it; but this check
+       * adds the arrayBuffer() method type because it is available and used at runtime
+       */
+      const isBlobLike = (value) =>
+        value != null &&
+        typeof value === "object" &&
+        typeof value.size === "number" &&
+        typeof value.type === "string" &&
+        typeof value.text === "function" &&
+        typeof value.slice === "function" &&
+        typeof value.arrayBuffer === "function";
+      exports.isBlobLike = isBlobLike;
+      const isUploadable = (value) => {
+        return (
+          (0, exports.isFileLike)(value) ||
+          (0, exports.isResponseLike)(value) ||
+          (0, index_1.isFsReadStream)(value)
+        );
+      };
+      exports.isUploadable = isUploadable;
+      /**
+       * Helper for creating a {@link File} to pass to an SDK upload method from a variety of different data formats
+       * @param value the raw content of the file.  Can be an {@link Uploadable}, {@link BlobLikePart}, or {@link AsyncIterable} of {@link BlobLikePart}s
+       * @param {string=} name the name of the file. If omitted, toFile will try to determine a file name from bits if possible
+       * @param {Object=} options additional properties
+       * @param {string=} options.type the MIME type of the content
+       * @param {number=} options.lastModified the last modified timestamp
+       * @returns a {@link File} with the given properties
+       */
+      async function toFile(value, name, options = {}) {
+        // If it's a promise, resolve it.
+        value = await value;
+        if ((0, exports.isResponseLike)(value)) {
+          const blob = await value.blob();
+          name ||
+            (name =
+              new URL(value.url).pathname.split(/[\\/]/).pop() ??
+              "unknown_file");
+          return new index_1.File([blob], name, options);
+        }
+        const bits = await getBytes(value);
+        name || (name = getName(value) ?? "unknown_file");
+        if (!options.type) {
+          const type = bits[0]?.type;
+          if (typeof type === "string") {
             options = { ...options, type };
+          }
         }
-    }
-    return new index_1.File(bits, name, options);
-}
-exports.toFile = toFile;
-async function getBytes(value) {
-    let parts = [];
-    if (typeof value === 'string' ||
-        ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.
-        value instanceof ArrayBuffer) {
-        parts.push(value);
-    }
-    else if ((0, exports.isBlobLike)(value)) {
-        parts.push(await value.arrayBuffer());
-    }
-    else if (isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.
-    ) {
-        for await (const chunk of value) {
+        return new index_1.File(bits, name, options);
+      }
+      exports.toFile = toFile;
+      async function getBytes(value) {
+        let parts = [];
+        if (
+          typeof value === "string" ||
+          ArrayBuffer.isView(value) || // includes Uint8Array, Buffer, etc.
+          value instanceof ArrayBuffer
+        ) {
+          parts.push(value);
+        } else if ((0, exports.isBlobLike)(value)) {
+          parts.push(await value.arrayBuffer());
+        } else if (
+          isAsyncIterableIterator(value) // includes Readable, ReadableStream, etc.
+        ) {
+          for await (const chunk of value) {
             parts.push(chunk); // TODO, consider validating?
+          }
+        } else {
+          throw new Error(
+            `Unexpected data type: ${typeof value}; constructor: ${
+              value?.constructor?.name
+            }; props: ${propsForError(value)}`
+          );
         }
-    }
-    else {
-        throw new Error(`Unexpected data type: ${typeof value}; constructor: ${value?.constructor?.name}; props: ${propsForError(value)}`);
-    }
-    return parts;
-}
-function propsForError(value) {
-    const props = Object.getOwnPropertyNames(value);
-    return `[${props.map((p) => `"${p}"`).join(', ')}]`;
-}
-function getName(value) {
-    return (getStringFromMaybeBuffer(value.name) ||
-        getStringFromMaybeBuffer(value.filename) ||
-        // For fs.ReadStream
-        getStringFromMaybeBuffer(value.path)?.split(/[\\/]/).pop());
-}
-const getStringFromMaybeBuffer = (x) => {
-    if (typeof x === 'string')
-        return x;
-    if (typeof Buffer !== 'undefined' && x instanceof Buffer)
-        return String(x);
-    return undefined;
-};
-const isAsyncIterableIterator = (value) => value != null && typeof value === 'object' && typeof value[Symbol.asyncIterator] === 'function';
-const isMultipartBody = (body) => body && typeof body === 'object' && body.body && body[Symbol.toStringTag] === 'MultipartBody';
-exports.isMultipartBody = isMultipartBody;
-/**
- * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.
- * Otherwise returns the request as is.
- */
-const maybeMultipartFormRequestOptions = async (opts) => {
-    if (!hasUploadableValue(opts.body))
-        return opts;
-    const form = await (0, exports.createForm)(opts.body);
-    return (0, index_1.getMultipartRequestOptions)(form, opts);
-};
-exports.maybeMultipartFormRequestOptions = maybeMultipartFormRequestOptions;
-const multipartFormRequestOptions = async (opts) => {
-    const form = await (0, exports.createForm)(opts.body);
-    return (0, index_1.getMultipartRequestOptions)(form, opts);
-};
-exports.multipartFormRequestOptions = multipartFormRequestOptions;
-const createForm = async (body) => {
-    const form = new index_1.FormData();
-    await Promise.all(Object.entries(body || {}).map(([key, value]) => addFormValue(form, key, value)));
-    return form;
-};
-exports.createForm = createForm;
-const hasUploadableValue = (value) => {
-    if ((0, exports.isUploadable)(value))
-        return true;
-    if (Array.isArray(value))
-        return value.some(hasUploadableValue);
-    if (value && typeof value === 'object') {
-        for (const k in value) {
-            if (hasUploadableValue(value[k]))
-                return true;
+        return parts;
+      }
+      function propsForError(value) {
+        const props = Object.getOwnPropertyNames(value);
+        return `[${props.map((p) => `"${p}"`).join(", ")}]`;
+      }
+      function getName(value) {
+        return (
+          getStringFromMaybeBuffer(value.name) ||
+          getStringFromMaybeBuffer(value.filename) ||
+          // For fs.ReadStream
+          getStringFromMaybeBuffer(value.path)?.split(/[\\/]/).pop()
+        );
+      }
+      const getStringFromMaybeBuffer = (x) => {
+        if (typeof x === "string") return x;
+        if (typeof Buffer !== "undefined" && x instanceof Buffer)
+          return String(x);
+        return undefined;
+      };
+      const isAsyncIterableIterator = (value) =>
+        value != null &&
+        typeof value === "object" &&
+        typeof value[Symbol.asyncIterator] === "function";
+      const isMultipartBody = (body) =>
+        body &&
+        typeof body === "object" &&
+        body.body &&
+        body[Symbol.toStringTag] === "MultipartBody";
+      exports.isMultipartBody = isMultipartBody;
+      /**
+       * Returns a multipart/form-data request if any part of the given request body contains a File / Blob value.
+       * Otherwise returns the request as is.
+       */
+      const maybeMultipartFormRequestOptions = async (opts) => {
+        if (!hasUploadableValue(opts.body)) return opts;
+        const form = await (0, exports.createForm)(opts.body);
+        return (0, index_1.getMultipartRequestOptions)(form, opts);
+      };
+      exports.maybeMultipartFormRequestOptions =
+        maybeMultipartFormRequestOptions;
+      const multipartFormRequestOptions = async (opts) => {
+        const form = await (0, exports.createForm)(opts.body);
+        return (0, index_1.getMultipartRequestOptions)(form, opts);
+      };
+      exports.multipartFormRequestOptions = multipartFormRequestOptions;
+      const createForm = async (body) => {
+        const form = new index_1.FormData();
+        await Promise.all(
+          Object.entries(body || {}).map(([key, value]) =>
+            addFormValue(form, key, value)
+          )
+        );
+        return form;
+      };
+      exports.createForm = createForm;
+      const hasUploadableValue = (value) => {
+        if ((0, exports.isUploadable)(value)) return true;
+        if (Array.isArray(value)) return value.some(hasUploadableValue);
+        if (value && typeof value === "object") {
+          for (const k in value) {
+            if (hasUploadableValue(value[k])) return true;
+          }
         }
+        return false;
+      };
+      const addFormValue = async (form, key, value) => {
+        if (value === undefined) return;
+        if (value == null) {
+          throw new TypeError(
+            `Received null for "${key}"; to pass null in FormData, you must use the string 'null'`
+          );
+        }
+        // TODO: make nested formats configurable
+        if (
+          typeof value === "string" ||
+          typeof value === "number" ||
+          typeof value === "boolean"
+        ) {
+          form.append(key, String(value));
+        } else if ((0, exports.isUploadable)(value)) {
+          const file = await toFile(value);
+          form.append(key, file);
+        } else if (Array.isArray(value)) {
+          await Promise.all(
+            value.map((entry) => addFormValue(form, key + "[]", entry))
+          );
+        } else if (typeof value === "object") {
+          await Promise.all(
+            Object.entries(value).map(([name, prop]) =>
+              addFormValue(form, `${key}[${name}]`, prop)
+            )
+          );
+        } else {
+          throw new TypeError(
+            `Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`
+          );
+        }
+      };
+      //# sourceMappingURL=uploads.js.map
+
+      /***/
+    },
+
+    /***/ 6417: /***/ (__unused_webpack_module, exports) => {
+      "use strict";
+
+      Object.defineProperty(exports, "__esModule", { value: true });
+      exports.VERSION = void 0;
+      exports.VERSION = "4.20.1"; // x-release-please-version
+      //# sourceMappingURL=version.js.map
+
+      /***/
+    },
+
+    /***/ 2020: /***/ (module) => {
+      "use strict";
+      module.exports = JSON.parse(
+        '[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]'
+      );
+
+      /***/
+    },
+
+    /******/
+  };
+  /************************************************************************/
+  /******/ // The module cache
+  /******/ var __webpack_module_cache__ = {};
+  /******/
+  /******/ // The require function
+  /******/ function __nccwpck_require__(moduleId) {
+    /******/ // Check if module is in cache
+    /******/ var cachedModule = __webpack_module_cache__[moduleId];
+    /******/ if (cachedModule !== undefined) {
+      /******/ return cachedModule.exports;
+      /******/
     }
-    return false;
-};
-const addFormValue = async (form, key, value) => {
-    if (value === undefined)
-        return;
-    if (value == null) {
-        throw new TypeError(`Received null for "${key}"; to pass null in FormData, you must use the string 'null'`);
+    /******/ // Create a new module (and put it into the cache)
+    /******/ var module = (__webpack_module_cache__[moduleId] = {
+      /******/ // no module.id needed
+      /******/ // no module.loaded needed
+      /******/ exports: {},
+      /******/
+    });
+    /******/
+    /******/ // Execute the module function
+    /******/ var threw = true;
+    /******/ try {
+      /******/ __webpack_modules__[moduleId].call(
+        module.exports,
+        module,
+        module.exports,
+        __nccwpck_require__
+      );
+      /******/ threw = false;
+      /******/
+    } finally {
+      /******/ if (threw) delete __webpack_module_cache__[moduleId];
+      /******/
     }
-    // TODO: make nested formats configurable
-    if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
-        form.append(key, String(value));
-    }
-    else if ((0, exports.isUploadable)(value)) {
-        const file = await toFile(value);
-        form.append(key, file);
-    }
-    else if (Array.isArray(value)) {
-        await Promise.all(value.map((entry) => addFormValue(form, key + '[]', entry)));
-    }
-    else if (typeof value === 'object') {
-        await Promise.all(Object.entries(value).map(([name, prop]) => addFormValue(form, `${key}[${name}]`, prop)));
-    }
-    else {
-        throw new TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${value} instead`);
-    }
-};
-//# sourceMappingURL=uploads.js.map
-
-/***/ }),
-
-/***/ 6417:
-/***/ ((__unused_webpack_module, exports) => {
-
-"use strict";
-
-Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.VERSION = void 0;
-exports.VERSION = '4.20.1'; // x-release-please-version
-//# sourceMappingURL=version.js.map
-
-/***/ }),
-
-/***/ 2020:
-/***/ ((module) => {
-
-"use strict";
-module.exports = JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]');
-
-/***/ })
-
-/******/ 	});
-/************************************************************************/
-/******/ 	// The module cache
-/******/ 	var __webpack_module_cache__ = {};
-/******/ 	
-/******/ 	// The require function
-/******/ 	function __nccwpck_require__(moduleId) {
-/******/ 		// Check if module is in cache
-/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
-/******/ 		if (cachedModule !== undefined) {
-/******/ 			return cachedModule.exports;
-/******/ 		}
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = __webpack_module_cache__[moduleId] = {
-/******/ 			// no module.id needed
-/******/ 			// no module.loaded needed
-/******/ 			exports: {}
-/******/ 		};
-/******/ 	
-/******/ 		// Execute the module function
-/******/ 		var threw = true;
-/******/ 		try {
-/******/ 			__webpack_modules__[moduleId].call(module.exports, module, module.exports, __nccwpck_require__);
-/******/ 			threw = false;
-/******/ 		} finally {
-/******/ 			if(threw) delete __webpack_module_cache__[moduleId];
-/******/ 		}
-/******/ 	
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-/******/ 	
-/************************************************************************/
-/******/ 	/* webpack/runtime/compat */
-/******/ 	
-/******/ 	if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/";
-/******/ 	
-/************************************************************************/
-/******/ 	
-/******/ 	// startup
-/******/ 	// Load entry module and return exports
-/******/ 	// This entry module is referenced by other modules so it can't be inlined
-/******/ 	var __webpack_exports__ = __nccwpck_require__(3109);
-/******/ 	module.exports = __webpack_exports__;
-/******/ 	
-/******/ })()
-;
-//# sourceMappingURL=index.js.map
\ No newline at end of file
+    /******/
+    /******/ // Return the exports of the module
+    /******/ return module.exports;
+    /******/
+  }
+  /******/
+  /************************************************************************/
+  /******/ /* webpack/runtime/compat */
+  /******/
+  /******/ if (typeof __nccwpck_require__ !== "undefined")
+    __nccwpck_require__.ab = __dirname + "/";
+  /******/
+  /************************************************************************/
+  /******/
+  /******/ // startup
+  /******/ // Load entry module and return exports
+  /******/ // This entry module is referenced by other modules so it can't be inlined
+  /******/ var __webpack_exports__ = __nccwpck_require__(3109);
+  /******/ module.exports = __webpack_exports__;
+  /******/
+  /******/
+})();
+//# sourceMappingURL=index.js.map
diff --git a/dist/sourcemap-register.js b/dist/sourcemap-register.js
index 466141d..01f2e60 100644
--- a/dist/sourcemap-register.js
+++ b/dist/sourcemap-register.js
@@ -1 +1,2351 @@
-(()=>{var e={650:e=>{var r=Object.prototype.toString;var n=typeof Buffer.alloc==="function"&&typeof Buffer.allocUnsafe==="function"&&typeof Buffer.from==="function";function isArrayBuffer(e){return r.call(e).slice(8,-1)==="ArrayBuffer"}function fromArrayBuffer(e,r,t){r>>>=0;var o=e.byteLength-r;if(o<0){throw new RangeError("'offset' is out of bounds")}if(t===undefined){t=o}else{t>>>=0;if(t>o){throw new RangeError("'length' is out of bounds")}}return n?Buffer.from(e.slice(r,r+t)):new Buffer(new Uint8Array(e.slice(r,r+t)))}function fromString(e,r){if(typeof r!=="string"||r===""){r="utf8"}if(!Buffer.isEncoding(r)){throw new TypeError('"encoding" must be a valid string encoding')}return n?Buffer.from(e,r):new Buffer(e,r)}function bufferFrom(e,r,t){if(typeof e==="number"){throw new TypeError('"value" argument must not be a number')}if(isArrayBuffer(e)){return fromArrayBuffer(e,r,t)}if(typeof e==="string"){return fromString(e,r)}return n?Buffer.from(e):new Buffer(e)}e.exports=bufferFrom},274:(e,r,n)=>{var t=n(339);var o=Object.prototype.hasOwnProperty;var i=typeof Map!=="undefined";function ArraySet(){this._array=[];this._set=i?new Map:Object.create(null)}ArraySet.fromArray=function ArraySet_fromArray(e,r){var n=new ArraySet;for(var t=0,o=e.length;t=0){return r}}else{var n=t.toSetString(e);if(o.call(this._set,n)){return this._set[n]}}throw new Error('"'+e+'" is not in the set.')};ArraySet.prototype.at=function ArraySet_at(e){if(e>=0&&e{var t=n(190);var o=5;var i=1<>1;return r?-n:n}r.encode=function base64VLQ_encode(e){var r="";var n;var i=toVLQSigned(e);do{n=i&a;i>>>=o;if(i>0){n|=u}r+=t.encode(n)}while(i>0);return r};r.decode=function base64VLQ_decode(e,r,n){var i=e.length;var s=0;var l=0;var c,p;do{if(r>=i){throw new Error("Expected more digits in base 64 VLQ value.")}p=t.decode(e.charCodeAt(r++));if(p===-1){throw new Error("Invalid base64 digit: "+e.charAt(r-1))}c=!!(p&u);p&=a;s=s+(p<{var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");r.encode=function(e){if(0<=e&&e{r.GREATEST_LOWER_BOUND=1;r.LEAST_UPPER_BOUND=2;function recursiveSearch(e,n,t,o,i,a){var u=Math.floor((n-e)/2)+e;var s=i(t,o[u],true);if(s===0){return u}else if(s>0){if(n-u>1){return recursiveSearch(u,n,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return n1){return recursiveSearch(e,u,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return u}else{return e<0?-1:e}}}r.search=function search(e,n,t,o){if(n.length===0){return-1}var i=recursiveSearch(-1,n.length,e,n,t,o||r.GREATEST_LOWER_BOUND);if(i<0){return-1}while(i-1>=0){if(t(n[i],n[i-1],true)!==0){break}--i}return i}},680:(e,r,n)=>{var t=n(339);function generatedPositionAfter(e,r){var n=e.generatedLine;var o=r.generatedLine;var i=e.generatedColumn;var a=r.generatedColumn;return o>n||o==n&&a>=i||t.compareByGeneratedPositionsInflated(e,r)<=0}function MappingList(){this._array=[];this._sorted=true;this._last={generatedLine:-1,generatedColumn:0}}MappingList.prototype.unsortedForEach=function MappingList_forEach(e,r){this._array.forEach(e,r)};MappingList.prototype.add=function MappingList_add(e){if(generatedPositionAfter(this._last,e)){this._last=e;this._array.push(e)}else{this._sorted=false;this._array.push(e)}};MappingList.prototype.toArray=function MappingList_toArray(){if(!this._sorted){this._array.sort(t.compareByGeneratedPositionsInflated);this._sorted=true}return this._array};r.H=MappingList},758:(e,r)=>{function swap(e,r,n){var t=e[r];e[r]=e[n];e[n]=t}function randomIntInRange(e,r){return Math.round(e+Math.random()*(r-e))}function doQuickSort(e,r,n,t){if(n{var t;var o=n(339);var i=n(345);var a=n(274).I;var u=n(449);var s=n(758).U;function SourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}return n.sections!=null?new IndexedSourceMapConsumer(n,r):new BasicSourceMapConsumer(n,r)}SourceMapConsumer.fromSourceMap=function(e,r){return BasicSourceMapConsumer.fromSourceMap(e,r)};SourceMapConsumer.prototype._version=3;SourceMapConsumer.prototype.__generatedMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_generatedMappings",{configurable:true,enumerable:true,get:function(){if(!this.__generatedMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__generatedMappings}});SourceMapConsumer.prototype.__originalMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_originalMappings",{configurable:true,enumerable:true,get:function(){if(!this.__originalMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__originalMappings}});SourceMapConsumer.prototype._charIsMappingSeparator=function SourceMapConsumer_charIsMappingSeparator(e,r){var n=e.charAt(r);return n===";"||n===","};SourceMapConsumer.prototype._parseMappings=function SourceMapConsumer_parseMappings(e,r){throw new Error("Subclasses must implement _parseMappings")};SourceMapConsumer.GENERATED_ORDER=1;SourceMapConsumer.ORIGINAL_ORDER=2;SourceMapConsumer.GREATEST_LOWER_BOUND=1;SourceMapConsumer.LEAST_UPPER_BOUND=2;SourceMapConsumer.prototype.eachMapping=function SourceMapConsumer_eachMapping(e,r,n){var t=r||null;var i=n||SourceMapConsumer.GENERATED_ORDER;var a;switch(i){case SourceMapConsumer.GENERATED_ORDER:a=this._generatedMappings;break;case SourceMapConsumer.ORIGINAL_ORDER:a=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;a.map((function(e){var r=e.source===null?null:this._sources.at(e.source);r=o.computeSourceURL(u,r,this._sourceMapURL);return{source:r,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name===null?null:this._names.at(e.name)}}),this).forEach(e,t)};SourceMapConsumer.prototype.allGeneratedPositionsFor=function SourceMapConsumer_allGeneratedPositionsFor(e){var r=o.getArg(e,"line");var n={source:o.getArg(e,"source"),originalLine:r,originalColumn:o.getArg(e,"column",0)};n.source=this._findSourceIndex(n.source);if(n.source<0){return[]}var t=[];var a=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,i.LEAST_UPPER_BOUND);if(a>=0){var u=this._originalMappings[a];if(e.column===undefined){var s=u.originalLine;while(u&&u.originalLine===s){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}else{var l=u.originalColumn;while(u&&u.originalLine===r&&u.originalColumn==l){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}}return t};r.SourceMapConsumer=SourceMapConsumer;function BasicSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sources");var u=o.getArg(n,"names",[]);var s=o.getArg(n,"sourceRoot",null);var l=o.getArg(n,"sourcesContent",null);var c=o.getArg(n,"mappings");var p=o.getArg(n,"file",null);if(t!=this._version){throw new Error("Unsupported version: "+t)}if(s){s=o.normalize(s)}i=i.map(String).map(o.normalize).map((function(e){return s&&o.isAbsolute(s)&&o.isAbsolute(e)?o.relative(s,e):e}));this._names=a.fromArray(u.map(String),true);this._sources=a.fromArray(i,true);this._absoluteSources=this._sources.toArray().map((function(e){return o.computeSourceURL(s,e,r)}));this.sourceRoot=s;this.sourcesContent=l;this._mappings=c;this._sourceMapURL=r;this.file=p}BasicSourceMapConsumer.prototype=Object.create(SourceMapConsumer.prototype);BasicSourceMapConsumer.prototype.consumer=SourceMapConsumer;BasicSourceMapConsumer.prototype._findSourceIndex=function(e){var r=e;if(this.sourceRoot!=null){r=o.relative(this.sourceRoot,r)}if(this._sources.has(r)){return this._sources.indexOf(r)}var n;for(n=0;n1){v.source=l+_[1];l+=_[1];v.originalLine=i+_[2];i=v.originalLine;v.originalLine+=1;v.originalColumn=a+_[3];a=v.originalColumn;if(_.length>4){v.name=c+_[4];c+=_[4]}}m.push(v);if(typeof v.originalLine==="number"){d.push(v)}}}s(m,o.compareByGeneratedPositionsDeflated);this.__generatedMappings=m;s(d,o.compareByOriginalPositions);this.__originalMappings=d};BasicSourceMapConsumer.prototype._findMapping=function SourceMapConsumer_findMapping(e,r,n,t,o,a){if(e[n]<=0){throw new TypeError("Line must be greater than or equal to 1, got "+e[n])}if(e[t]<0){throw new TypeError("Column must be greater than or equal to 0, got "+e[t])}return i.search(e,r,o,a)};BasicSourceMapConsumer.prototype.computeColumnSpans=function SourceMapConsumer_computeColumnSpans(){for(var e=0;e=0){var t=this._generatedMappings[n];if(t.generatedLine===r.generatedLine){var i=o.getArg(t,"source",null);if(i!==null){i=this._sources.at(i);i=o.computeSourceURL(this.sourceRoot,i,this._sourceMapURL)}var a=o.getArg(t,"name",null);if(a!==null){a=this._names.at(a)}return{source:i,line:o.getArg(t,"originalLine",null),column:o.getArg(t,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}};BasicSourceMapConsumer.prototype.hasContentsOfAllSources=function BasicSourceMapConsumer_hasContentsOfAllSources(){if(!this.sourcesContent){return false}return this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return e==null}))};BasicSourceMapConsumer.prototype.sourceContentFor=function SourceMapConsumer_sourceContentFor(e,r){if(!this.sourcesContent){return null}var n=this._findSourceIndex(e);if(n>=0){return this.sourcesContent[n]}var t=e;if(this.sourceRoot!=null){t=o.relative(this.sourceRoot,t)}var i;if(this.sourceRoot!=null&&(i=o.urlParse(this.sourceRoot))){var a=t.replace(/^file:\/\//,"");if(i.scheme=="file"&&this._sources.has(a)){return this.sourcesContent[this._sources.indexOf(a)]}if((!i.path||i.path=="/")&&this._sources.has("/"+t)){return this.sourcesContent[this._sources.indexOf("/"+t)]}}if(r){return null}else{throw new Error('"'+t+'" is not in the SourceMap.')}};BasicSourceMapConsumer.prototype.generatedPositionFor=function SourceMapConsumer_generatedPositionFor(e){var r=o.getArg(e,"source");r=this._findSourceIndex(r);if(r<0){return{line:null,column:null,lastColumn:null}}var n={source:r,originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")};var t=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",SourceMapConsumer.GREATEST_LOWER_BOUND));if(t>=0){var i=this._originalMappings[t];if(i.source===n.source){return{line:o.getArg(i,"generatedLine",null),column:o.getArg(i,"generatedColumn",null),lastColumn:o.getArg(i,"lastGeneratedColumn",null)}}}return{line:null,column:null,lastColumn:null}};t=BasicSourceMapConsumer;function IndexedSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sections");if(t!=this._version){throw new Error("Unsupported version: "+t)}this._sources=new a;this._names=new a;var u={line:-1,column:0};this._sections=i.map((function(e){if(e.url){throw new Error("Support for url field in sections not implemented.")}var n=o.getArg(e,"offset");var t=o.getArg(n,"line");var i=o.getArg(n,"column");if(t{var t=n(449);var o=n(339);var i=n(274).I;var a=n(680).H;function SourceMapGenerator(e){if(!e){e={}}this._file=o.getArg(e,"file",null);this._sourceRoot=o.getArg(e,"sourceRoot",null);this._skipValidation=o.getArg(e,"skipValidation",false);this._sources=new i;this._names=new i;this._mappings=new a;this._sourcesContents=null}SourceMapGenerator.prototype._version=3;SourceMapGenerator.fromSourceMap=function SourceMapGenerator_fromSourceMap(e){var r=e.sourceRoot;var n=new SourceMapGenerator({file:e.file,sourceRoot:r});e.eachMapping((function(e){var t={generated:{line:e.generatedLine,column:e.generatedColumn}};if(e.source!=null){t.source=e.source;if(r!=null){t.source=o.relative(r,t.source)}t.original={line:e.originalLine,column:e.originalColumn};if(e.name!=null){t.name=e.name}}n.addMapping(t)}));e.sources.forEach((function(t){var i=t;if(r!==null){i=o.relative(r,t)}if(!n._sources.has(i)){n._sources.add(i)}var a=e.sourceContentFor(t);if(a!=null){n.setSourceContent(t,a)}}));return n};SourceMapGenerator.prototype.addMapping=function SourceMapGenerator_addMapping(e){var r=o.getArg(e,"generated");var n=o.getArg(e,"original",null);var t=o.getArg(e,"source",null);var i=o.getArg(e,"name",null);if(!this._skipValidation){this._validateMapping(r,n,t,i)}if(t!=null){t=String(t);if(!this._sources.has(t)){this._sources.add(t)}}if(i!=null){i=String(i);if(!this._names.has(i)){this._names.add(i)}}this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:t,name:i})};SourceMapGenerator.prototype.setSourceContent=function SourceMapGenerator_setSourceContent(e,r){var n=e;if(this._sourceRoot!=null){n=o.relative(this._sourceRoot,n)}if(r!=null){if(!this._sourcesContents){this._sourcesContents=Object.create(null)}this._sourcesContents[o.toSetString(n)]=r}else if(this._sourcesContents){delete this._sourcesContents[o.toSetString(n)];if(Object.keys(this._sourcesContents).length===0){this._sourcesContents=null}}};SourceMapGenerator.prototype.applySourceMap=function SourceMapGenerator_applySourceMap(e,r,n){var t=r;if(r==null){if(e.file==null){throw new Error("SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, "+'or the source map\'s "file" property. Both were omitted.')}t=e.file}var a=this._sourceRoot;if(a!=null){t=o.relative(a,t)}var u=new i;var s=new i;this._mappings.unsortedForEach((function(r){if(r.source===t&&r.originalLine!=null){var i=e.originalPositionFor({line:r.originalLine,column:r.originalColumn});if(i.source!=null){r.source=i.source;if(n!=null){r.source=o.join(n,r.source)}if(a!=null){r.source=o.relative(a,r.source)}r.originalLine=i.line;r.originalColumn=i.column;if(i.name!=null){r.name=i.name}}}var l=r.source;if(l!=null&&!u.has(l)){u.add(l)}var c=r.name;if(c!=null&&!s.has(c)){s.add(c)}}),this);this._sources=u;this._names=s;e.sources.forEach((function(r){var t=e.sourceContentFor(r);if(t!=null){if(n!=null){r=o.join(n,r)}if(a!=null){r=o.relative(a,r)}this.setSourceContent(r,t)}}),this)};SourceMapGenerator.prototype._validateMapping=function SourceMapGenerator_validateMapping(e,r,n,t){if(r&&typeof r.line!=="number"&&typeof r.column!=="number"){throw new Error("original.line and original.column are not numbers -- you probably meant to omit "+"the original mapping entirely and only map the generated position. If so, pass "+"null for the original mapping instead of an object with empty or null values.")}if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!r&&!n&&!t){return}else if(e&&"line"in e&&"column"in e&&r&&"line"in r&&"column"in r&&e.line>0&&e.column>=0&&r.line>0&&r.column>=0&&n){return}else{throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:r,name:t}))}};SourceMapGenerator.prototype._serializeMappings=function SourceMapGenerator_serializeMappings(){var e=0;var r=1;var n=0;var i=0;var a=0;var u=0;var s="";var l;var c;var p;var f;var g=this._mappings.toArray();for(var h=0,d=g.length;h0){if(!o.compareByGeneratedPositionsInflated(c,g[h-1])){continue}l+=","}}l+=t.encode(c.generatedColumn-e);e=c.generatedColumn;if(c.source!=null){f=this._sources.indexOf(c.source);l+=t.encode(f-u);u=f;l+=t.encode(c.originalLine-1-i);i=c.originalLine-1;l+=t.encode(c.originalColumn-n);n=c.originalColumn;if(c.name!=null){p=this._names.indexOf(c.name);l+=t.encode(p-a);a=p}}s+=l}return s};SourceMapGenerator.prototype._generateSourcesContent=function SourceMapGenerator_generateSourcesContent(e,r){return e.map((function(e){if(!this._sourcesContents){return null}if(r!=null){e=o.relative(r,e)}var n=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null}),this)};SourceMapGenerator.prototype.toJSON=function SourceMapGenerator_toJSON(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null){e.file=this._file}if(this._sourceRoot!=null){e.sourceRoot=this._sourceRoot}if(this._sourcesContents){e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)}return e};SourceMapGenerator.prototype.toString=function SourceMapGenerator_toString(){return JSON.stringify(this.toJSON())};r.h=SourceMapGenerator},351:(e,r,n)=>{var t;var o=n(591).h;var i=n(339);var a=/(\r?\n)/;var u=10;var s="$$$isSourceNode$$$";function SourceNode(e,r,n,t,o){this.children=[];this.sourceContents={};this.line=e==null?null:e;this.column=r==null?null:r;this.source=n==null?null:n;this.name=o==null?null:o;this[s]=true;if(t!=null)this.add(t)}SourceNode.fromStringWithSourceMap=function SourceNode_fromStringWithSourceMap(e,r,n){var t=new SourceNode;var o=e.split(a);var u=0;var shiftNextLine=function(){var e=getNextLine();var r=getNextLine()||"";return e+r;function getNextLine(){return u=0;r--){this.prepend(e[r])}}else if(e[s]||typeof e==="string"){this.children.unshift(e)}else{throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e)}return this};SourceNode.prototype.walk=function SourceNode_walk(e){var r;for(var n=0,t=this.children.length;n0){r=[];for(n=0;n{function getArg(e,r,n){if(r in e){return e[r]}else if(arguments.length===3){return n}else{throw new Error('"'+r+'" is a required argument.')}}r.getArg=getArg;var n=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;var t=/^data:.+\,.+$/;function urlParse(e){var r=e.match(n);if(!r){return null}return{scheme:r[1],auth:r[2],host:r[3],port:r[4],path:r[5]}}r.urlParse=urlParse;function urlGenerate(e){var r="";if(e.scheme){r+=e.scheme+":"}r+="//";if(e.auth){r+=e.auth+"@"}if(e.host){r+=e.host}if(e.port){r+=":"+e.port}if(e.path){r+=e.path}return r}r.urlGenerate=urlGenerate;function normalize(e){var n=e;var t=urlParse(e);if(t){if(!t.path){return e}n=t.path}var o=r.isAbsolute(n);var i=n.split(/\/+/);for(var a,u=0,s=i.length-1;s>=0;s--){a=i[s];if(a==="."){i.splice(s,1)}else if(a===".."){u++}else if(u>0){if(a===""){i.splice(s+1,u);u=0}else{i.splice(s,2);u--}}}n=i.join("/");if(n===""){n=o?"/":"."}if(t){t.path=n;return urlGenerate(t)}return n}r.normalize=normalize;function join(e,r){if(e===""){e="."}if(r===""){r="."}var n=urlParse(r);var o=urlParse(e);if(o){e=o.path||"/"}if(n&&!n.scheme){if(o){n.scheme=o.scheme}return urlGenerate(n)}if(n||r.match(t)){return r}if(o&&!o.host&&!o.path){o.host=r;return urlGenerate(o)}var i=r.charAt(0)==="/"?r:normalize(e.replace(/\/+$/,"")+"/"+r);if(o){o.path=i;return urlGenerate(o)}return i}r.join=join;r.isAbsolute=function(e){return e.charAt(0)==="/"||n.test(e)};function relative(e,r){if(e===""){e="."}e=e.replace(/\/$/,"");var n=0;while(r.indexOf(e+"/")!==0){var t=e.lastIndexOf("/");if(t<0){return r}e=e.slice(0,t);if(e.match(/^([^\/]+:\/)?\/*$/)){return r}++n}return Array(n+1).join("../")+r.substr(e.length+1)}r.relative=relative;var o=function(){var e=Object.create(null);return!("__proto__"in e)}();function identity(e){return e}function toSetString(e){if(isProtoString(e)){return"$"+e}return e}r.toSetString=o?identity:toSetString;function fromSetString(e){if(isProtoString(e)){return e.slice(1)}return e}r.fromSetString=o?identity:fromSetString;function isProtoString(e){if(!e){return false}var r=e.length;if(r<9){return false}if(e.charCodeAt(r-1)!==95||e.charCodeAt(r-2)!==95||e.charCodeAt(r-3)!==111||e.charCodeAt(r-4)!==116||e.charCodeAt(r-5)!==111||e.charCodeAt(r-6)!==114||e.charCodeAt(r-7)!==112||e.charCodeAt(r-8)!==95||e.charCodeAt(r-9)!==95){return false}for(var n=r-10;n>=0;n--){if(e.charCodeAt(n)!==36){return false}}return true}function compareByOriginalPositions(e,r,n){var t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0||n){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0){return t}t=e.generatedLine-r.generatedLine;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByOriginalPositions=compareByOriginalPositions;function compareByGeneratedPositionsDeflated(e,r,n){var t=e.generatedLine-r.generatedLine;if(t!==0){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0||n){return t}t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsDeflated=compareByGeneratedPositionsDeflated;function strcmp(e,r){if(e===r){return 0}if(e===null){return 1}if(r===null){return-1}if(e>r){return 1}return-1}function compareByGeneratedPositionsInflated(e,r){var n=e.generatedLine-r.generatedLine;if(n!==0){return n}n=e.generatedColumn-r.generatedColumn;if(n!==0){return n}n=strcmp(e.source,r.source);if(n!==0){return n}n=e.originalLine-r.originalLine;if(n!==0){return n}n=e.originalColumn-r.originalColumn;if(n!==0){return n}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;function parseSourceMapInput(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}r.parseSourceMapInput=parseSourceMapInput;function computeSourceURL(e,r,n){r=r||"";if(e){if(e[e.length-1]!=="/"&&r[0]!=="/"){e+="/"}r=e+r}if(n){var t=urlParse(n);if(!t){throw new Error("sourceMapURL could not be parsed")}if(t.path){var o=t.path.lastIndexOf("/");if(o>=0){t.path=t.path.substring(0,o+1)}}r=join(urlGenerate(t),r)}return normalize(r)}r.computeSourceURL=computeSourceURL},997:(e,r,n)=>{n(591).h;r.SourceMapConsumer=n(952).SourceMapConsumer;n(351)},284:(e,r,n)=>{e=n.nmd(e);var t=n(997).SourceMapConsumer;var o=n(17);var i;try{i=n(147);if(!i.existsSync||!i.readFileSync){i=null}}catch(e){}var a=n(650);function dynamicRequire(e,r){return e.require(r)}var u=false;var s=false;var l=false;var c="auto";var p={};var f={};var g=/^data:application\/json[^,]+base64,/;var h=[];var d=[];function isInBrowser(){if(c==="browser")return true;if(c==="node")return false;return typeof window!=="undefined"&&typeof XMLHttpRequest==="function"&&!(window.require&&window.module&&window.process&&window.process.type==="renderer")}function hasGlobalProcessEventEmitter(){return typeof process==="object"&&process!==null&&typeof process.on==="function"}function globalProcessVersion(){if(typeof process==="object"&&process!==null){return process.version}else{return""}}function globalProcessStderr(){if(typeof process==="object"&&process!==null){return process.stderr}}function globalProcessExit(e){if(typeof process==="object"&&process!==null&&typeof process.exit==="function"){return process.exit(e)}}function handlerExec(e){return function(r){for(var n=0;n"}var n=this.getLineNumber();if(n!=null){r+=":"+n;var t=this.getColumnNumber();if(t){r+=":"+t}}}var o="";var i=this.getFunctionName();var a=true;var u=this.isConstructor();var s=!(this.isToplevel()||u);if(s){var l=this.getTypeName();if(l==="[object Object]"){l="null"}var c=this.getMethodName();if(i){if(l&&i.indexOf(l)!=0){o+=l+"."}o+=i;if(c&&i.indexOf("."+c)!=i.length-c.length-1){o+=" [as "+c+"]"}}else{o+=l+"."+(c||"")}}else if(u){o+="new "+(i||"")}else if(i){o+=i}else{o+=r;a=false}if(a){o+=" ("+r+")"}return o}function cloneCallSite(e){var r={};Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((function(n){r[n]=/^(?:is|get)/.test(n)?function(){return e[n].call(e)}:e[n]}));r.toString=CallSiteToString;return r}function wrapCallSite(e,r){if(r===undefined){r={nextPosition:null,curPosition:null}}if(e.isNative()){r.curPosition=null;return e}var n=e.getFileName()||e.getScriptNameOrSourceURL();if(n){var t=e.getLineNumber();var o=e.getColumnNumber()-1;var i=/^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/;var a=i.test(globalProcessVersion())?0:62;if(t===1&&o>a&&!isInBrowser()&&!e.isEval()){o-=a}var u=mapSourcePosition({source:n,line:t,column:o});r.curPosition=u;e=cloneCallSite(e);var s=e.getFunctionName;e.getFunctionName=function(){if(r.nextPosition==null){return s()}return r.nextPosition.name||s()};e.getFileName=function(){return u.source};e.getLineNumber=function(){return u.line};e.getColumnNumber=function(){return u.column+1};e.getScriptNameOrSourceURL=function(){return u.source};return e}var l=e.isEval()&&e.getEvalOrigin();if(l){l=mapEvalOrigin(l);e=cloneCallSite(e);e.getEvalOrigin=function(){return l};return e}return e}function prepareStackTrace(e,r){if(l){p={};f={}}var n=e.name||"Error";var t=e.message||"";var o=n+": "+t;var i={nextPosition:null,curPosition:null};var a=[];for(var u=r.length-1;u>=0;u--){a.push("\n    at "+wrapCallSite(r[u],i));i.nextPosition=i.curPosition}i.curPosition=i.nextPosition=null;return o+a.reverse().join("")}function getErrorSource(e){var r=/\n    at [^(]+ \((.*):(\d+):(\d+)\)/.exec(e.stack);if(r){var n=r[1];var t=+r[2];var o=+r[3];var a=p[n];if(!a&&i&&i.existsSync(n)){try{a=i.readFileSync(n,"utf8")}catch(e){a=""}}if(a){var u=a.split(/(?:\r\n|\r|\n)/)[t-1];if(u){return n+":"+t+"\n"+u+"\n"+new Array(o).join(" ")+"^"}}}return null}function printErrorAndExit(e){var r=getErrorSource(e);var n=globalProcessStderr();if(n&&n._handle&&n._handle.setBlocking){n._handle.setBlocking(true)}if(r){console.error();console.error(r)}console.error(e.stack);globalProcessExit(1)}function shimEmitUncaughtException(){var e=process.emit;process.emit=function(r){if(r==="uncaughtException"){var n=arguments[1]&&arguments[1].stack;var t=this.listeners(r).length>0;if(n&&!t){return printErrorAndExit(arguments[1])}}return e.apply(this,arguments)}}var S=h.slice(0);var _=d.slice(0);r.wrapCallSite=wrapCallSite;r.getErrorSource=getErrorSource;r.mapSourcePosition=mapSourcePosition;r.retrieveSourceMap=v;r.install=function(r){r=r||{};if(r.environment){c=r.environment;if(["node","browser","auto"].indexOf(c)===-1){throw new Error("environment "+c+" was unknown. Available options are {auto, browser, node}")}}if(r.retrieveFile){if(r.overrideRetrieveFile){h.length=0}h.unshift(r.retrieveFile)}if(r.retrieveSourceMap){if(r.overrideRetrieveSourceMap){d.length=0}d.unshift(r.retrieveSourceMap)}if(r.hookRequire&&!isInBrowser()){var n=dynamicRequire(e,"module");var t=n.prototype._compile;if(!t.__sourceMapSupport){n.prototype._compile=function(e,r){p[r]=e;f[r]=undefined;return t.call(this,e,r)};n.prototype._compile.__sourceMapSupport=true}}if(!l){l="emptyCacheBetweenOperations"in r?r.emptyCacheBetweenOperations:false}if(!u){u=true;Error.prepareStackTrace=prepareStackTrace}if(!s){var o="handleUncaughtExceptions"in r?r.handleUncaughtExceptions:true;try{var i=dynamicRequire(e,"worker_threads");if(i.isMainThread===false){o=false}}catch(e){}if(o&&hasGlobalProcessEventEmitter()){s=true;shimEmitUncaughtException()}}};r.resetRetrieveHandlers=function(){h.length=0;d.length=0;h=S.slice(0);d=_.slice(0);v=handlerExec(d);m=handlerExec(h)}},147:e=>{"use strict";e.exports=require("fs")},17:e=>{"use strict";e.exports=require("path")}};var r={};function __webpack_require__(n){var t=r[n];if(t!==undefined){return t.exports}var o=r[n]={id:n,loaded:false,exports:{}};var i=true;try{e[n](o,o.exports,__webpack_require__);i=false}finally{if(i)delete r[n]}o.loaded=true;return o.exports}(()=>{__webpack_require__.nmd=e=>{e.paths=[];if(!e.children)e.children=[];return e}})();if(typeof __webpack_require__!=="undefined")__webpack_require__.ab=__dirname+"/";var n={};(()=>{__webpack_require__(284).install()})();module.exports=n})();
\ No newline at end of file
+(() => {
+  var e = {
+    650: (e) => {
+      var r = Object.prototype.toString;
+      var n =
+        typeof Buffer.alloc === "function" &&
+        typeof Buffer.allocUnsafe === "function" &&
+        typeof Buffer.from === "function";
+      function isArrayBuffer(e) {
+        return r.call(e).slice(8, -1) === "ArrayBuffer";
+      }
+      function fromArrayBuffer(e, r, t) {
+        r >>>= 0;
+        var o = e.byteLength - r;
+        if (o < 0) {
+          throw new RangeError("'offset' is out of bounds");
+        }
+        if (t === undefined) {
+          t = o;
+        } else {
+          t >>>= 0;
+          if (t > o) {
+            throw new RangeError("'length' is out of bounds");
+          }
+        }
+        return n
+          ? Buffer.from(e.slice(r, r + t))
+          : new Buffer(new Uint8Array(e.slice(r, r + t)));
+      }
+      function fromString(e, r) {
+        if (typeof r !== "string" || r === "") {
+          r = "utf8";
+        }
+        if (!Buffer.isEncoding(r)) {
+          throw new TypeError('"encoding" must be a valid string encoding');
+        }
+        return n ? Buffer.from(e, r) : new Buffer(e, r);
+      }
+      function bufferFrom(e, r, t) {
+        if (typeof e === "number") {
+          throw new TypeError('"value" argument must not be a number');
+        }
+        if (isArrayBuffer(e)) {
+          return fromArrayBuffer(e, r, t);
+        }
+        if (typeof e === "string") {
+          return fromString(e, r);
+        }
+        return n ? Buffer.from(e) : new Buffer(e);
+      }
+      e.exports = bufferFrom;
+    },
+    274: (e, r, n) => {
+      var t = n(339);
+      var o = Object.prototype.hasOwnProperty;
+      var i = typeof Map !== "undefined";
+      function ArraySet() {
+        this._array = [];
+        this._set = i ? new Map() : Object.create(null);
+      }
+      ArraySet.fromArray = function ArraySet_fromArray(e, r) {
+        var n = new ArraySet();
+        for (var t = 0, o = e.length; t < o; t++) {
+          n.add(e[t], r);
+        }
+        return n;
+      };
+      ArraySet.prototype.size = function ArraySet_size() {
+        return i
+          ? this._set.size
+          : Object.getOwnPropertyNames(this._set).length;
+      };
+      ArraySet.prototype.add = function ArraySet_add(e, r) {
+        var n = i ? e : t.toSetString(e);
+        var a = i ? this.has(e) : o.call(this._set, n);
+        var u = this._array.length;
+        if (!a || r) {
+          this._array.push(e);
+        }
+        if (!a) {
+          if (i) {
+            this._set.set(e, u);
+          } else {
+            this._set[n] = u;
+          }
+        }
+      };
+      ArraySet.prototype.has = function ArraySet_has(e) {
+        if (i) {
+          return this._set.has(e);
+        } else {
+          var r = t.toSetString(e);
+          return o.call(this._set, r);
+        }
+      };
+      ArraySet.prototype.indexOf = function ArraySet_indexOf(e) {
+        if (i) {
+          var r = this._set.get(e);
+          if (r >= 0) {
+            return r;
+          }
+        } else {
+          var n = t.toSetString(e);
+          if (o.call(this._set, n)) {
+            return this._set[n];
+          }
+        }
+        throw new Error('"' + e + '" is not in the set.');
+      };
+      ArraySet.prototype.at = function ArraySet_at(e) {
+        if (e >= 0 && e < this._array.length) {
+          return this._array[e];
+        }
+        throw new Error("No element indexed by " + e);
+      };
+      ArraySet.prototype.toArray = function ArraySet_toArray() {
+        return this._array.slice();
+      };
+      r.I = ArraySet;
+    },
+    449: (e, r, n) => {
+      var t = n(190);
+      var o = 5;
+      var i = 1 << o;
+      var a = i - 1;
+      var u = i;
+      function toVLQSigned(e) {
+        return e < 0 ? (-e << 1) + 1 : (e << 1) + 0;
+      }
+      function fromVLQSigned(e) {
+        var r = (e & 1) === 1;
+        var n = e >> 1;
+        return r ? -n : n;
+      }
+      r.encode = function base64VLQ_encode(e) {
+        var r = "";
+        var n;
+        var i = toVLQSigned(e);
+        do {
+          n = i & a;
+          i >>>= o;
+          if (i > 0) {
+            n |= u;
+          }
+          r += t.encode(n);
+        } while (i > 0);
+        return r;
+      };
+      r.decode = function base64VLQ_decode(e, r, n) {
+        var i = e.length;
+        var s = 0;
+        var l = 0;
+        var c, p;
+        do {
+          if (r >= i) {
+            throw new Error("Expected more digits in base 64 VLQ value.");
+          }
+          p = t.decode(e.charCodeAt(r++));
+          if (p === -1) {
+            throw new Error("Invalid base64 digit: " + e.charAt(r - 1));
+          }
+          c = !!(p & u);
+          p &= a;
+          s = s + (p << l);
+          l += o;
+        } while (c);
+        n.value = fromVLQSigned(s);
+        n.rest = r;
+      };
+    },
+    190: (e, r) => {
+      var n =
+        "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(
+          ""
+        );
+      r.encode = function (e) {
+        if (0 <= e && e < n.length) {
+          return n[e];
+        }
+        throw new TypeError("Must be between 0 and 63: " + e);
+      };
+      r.decode = function (e) {
+        var r = 65;
+        var n = 90;
+        var t = 97;
+        var o = 122;
+        var i = 48;
+        var a = 57;
+        var u = 43;
+        var s = 47;
+        var l = 26;
+        var c = 52;
+        if (r <= e && e <= n) {
+          return e - r;
+        }
+        if (t <= e && e <= o) {
+          return e - t + l;
+        }
+        if (i <= e && e <= a) {
+          return e - i + c;
+        }
+        if (e == u) {
+          return 62;
+        }
+        if (e == s) {
+          return 63;
+        }
+        return -1;
+      };
+    },
+    345: (e, r) => {
+      r.GREATEST_LOWER_BOUND = 1;
+      r.LEAST_UPPER_BOUND = 2;
+      function recursiveSearch(e, n, t, o, i, a) {
+        var u = Math.floor((n - e) / 2) + e;
+        var s = i(t, o[u], true);
+        if (s === 0) {
+          return u;
+        } else if (s > 0) {
+          if (n - u > 1) {
+            return recursiveSearch(u, n, t, o, i, a);
+          }
+          if (a == r.LEAST_UPPER_BOUND) {
+            return n < o.length ? n : -1;
+          } else {
+            return u;
+          }
+        } else {
+          if (u - e > 1) {
+            return recursiveSearch(e, u, t, o, i, a);
+          }
+          if (a == r.LEAST_UPPER_BOUND) {
+            return u;
+          } else {
+            return e < 0 ? -1 : e;
+          }
+        }
+      }
+      r.search = function search(e, n, t, o) {
+        if (n.length === 0) {
+          return -1;
+        }
+        var i = recursiveSearch(
+          -1,
+          n.length,
+          e,
+          n,
+          t,
+          o || r.GREATEST_LOWER_BOUND
+        );
+        if (i < 0) {
+          return -1;
+        }
+        while (i - 1 >= 0) {
+          if (t(n[i], n[i - 1], true) !== 0) {
+            break;
+          }
+          --i;
+        }
+        return i;
+      };
+    },
+    680: (e, r, n) => {
+      var t = n(339);
+      function generatedPositionAfter(e, r) {
+        var n = e.generatedLine;
+        var o = r.generatedLine;
+        var i = e.generatedColumn;
+        var a = r.generatedColumn;
+        return (
+          o > n ||
+          (o == n && a >= i) ||
+          t.compareByGeneratedPositionsInflated(e, r) <= 0
+        );
+      }
+      function MappingList() {
+        this._array = [];
+        this._sorted = true;
+        this._last = { generatedLine: -1, generatedColumn: 0 };
+      }
+      MappingList.prototype.unsortedForEach = function MappingList_forEach(
+        e,
+        r
+      ) {
+        this._array.forEach(e, r);
+      };
+      MappingList.prototype.add = function MappingList_add(e) {
+        if (generatedPositionAfter(this._last, e)) {
+          this._last = e;
+          this._array.push(e);
+        } else {
+          this._sorted = false;
+          this._array.push(e);
+        }
+      };
+      MappingList.prototype.toArray = function MappingList_toArray() {
+        if (!this._sorted) {
+          this._array.sort(t.compareByGeneratedPositionsInflated);
+          this._sorted = true;
+        }
+        return this._array;
+      };
+      r.H = MappingList;
+    },
+    758: (e, r) => {
+      function swap(e, r, n) {
+        var t = e[r];
+        e[r] = e[n];
+        e[n] = t;
+      }
+      function randomIntInRange(e, r) {
+        return Math.round(e + Math.random() * (r - e));
+      }
+      function doQuickSort(e, r, n, t) {
+        if (n < t) {
+          var o = randomIntInRange(n, t);
+          var i = n - 1;
+          swap(e, o, t);
+          var a = e[t];
+          for (var u = n; u < t; u++) {
+            if (r(e[u], a) <= 0) {
+              i += 1;
+              swap(e, i, u);
+            }
+          }
+          swap(e, i + 1, u);
+          var s = i + 1;
+          doQuickSort(e, r, n, s - 1);
+          doQuickSort(e, r, s + 1, t);
+        }
+      }
+      r.U = function (e, r) {
+        doQuickSort(e, r, 0, e.length - 1);
+      };
+    },
+    952: (e, r, n) => {
+      var t;
+      var o = n(339);
+      var i = n(345);
+      var a = n(274).I;
+      var u = n(449);
+      var s = n(758).U;
+      function SourceMapConsumer(e, r) {
+        var n = e;
+        if (typeof e === "string") {
+          n = o.parseSourceMapInput(e);
+        }
+        return n.sections != null
+          ? new IndexedSourceMapConsumer(n, r)
+          : new BasicSourceMapConsumer(n, r);
+      }
+      SourceMapConsumer.fromSourceMap = function (e, r) {
+        return BasicSourceMapConsumer.fromSourceMap(e, r);
+      };
+      SourceMapConsumer.prototype._version = 3;
+      SourceMapConsumer.prototype.__generatedMappings = null;
+      Object.defineProperty(SourceMapConsumer.prototype, "_generatedMappings", {
+        configurable: true,
+        enumerable: true,
+        get: function () {
+          if (!this.__generatedMappings) {
+            this._parseMappings(this._mappings, this.sourceRoot);
+          }
+          return this.__generatedMappings;
+        },
+      });
+      SourceMapConsumer.prototype.__originalMappings = null;
+      Object.defineProperty(SourceMapConsumer.prototype, "_originalMappings", {
+        configurable: true,
+        enumerable: true,
+        get: function () {
+          if (!this.__originalMappings) {
+            this._parseMappings(this._mappings, this.sourceRoot);
+          }
+          return this.__originalMappings;
+        },
+      });
+      SourceMapConsumer.prototype._charIsMappingSeparator =
+        function SourceMapConsumer_charIsMappingSeparator(e, r) {
+          var n = e.charAt(r);
+          return n === ";" || n === ",";
+        };
+      SourceMapConsumer.prototype._parseMappings =
+        function SourceMapConsumer_parseMappings(e, r) {
+          throw new Error("Subclasses must implement _parseMappings");
+        };
+      SourceMapConsumer.GENERATED_ORDER = 1;
+      SourceMapConsumer.ORIGINAL_ORDER = 2;
+      SourceMapConsumer.GREATEST_LOWER_BOUND = 1;
+      SourceMapConsumer.LEAST_UPPER_BOUND = 2;
+      SourceMapConsumer.prototype.eachMapping =
+        function SourceMapConsumer_eachMapping(e, r, n) {
+          var t = r || null;
+          var i = n || SourceMapConsumer.GENERATED_ORDER;
+          var a;
+          switch (i) {
+            case SourceMapConsumer.GENERATED_ORDER:
+              a = this._generatedMappings;
+              break;
+            case SourceMapConsumer.ORIGINAL_ORDER:
+              a = this._originalMappings;
+              break;
+            default:
+              throw new Error("Unknown order of iteration.");
+          }
+          var u = this.sourceRoot;
+          a.map(function (e) {
+            var r = e.source === null ? null : this._sources.at(e.source);
+            r = o.computeSourceURL(u, r, this._sourceMapURL);
+            return {
+              source: r,
+              generatedLine: e.generatedLine,
+              generatedColumn: e.generatedColumn,
+              originalLine: e.originalLine,
+              originalColumn: e.originalColumn,
+              name: e.name === null ? null : this._names.at(e.name),
+            };
+          }, this).forEach(e, t);
+        };
+      SourceMapConsumer.prototype.allGeneratedPositionsFor =
+        function SourceMapConsumer_allGeneratedPositionsFor(e) {
+          var r = o.getArg(e, "line");
+          var n = {
+            source: o.getArg(e, "source"),
+            originalLine: r,
+            originalColumn: o.getArg(e, "column", 0),
+          };
+          n.source = this._findSourceIndex(n.source);
+          if (n.source < 0) {
+            return [];
+          }
+          var t = [];
+          var a = this._findMapping(
+            n,
+            this._originalMappings,
+            "originalLine",
+            "originalColumn",
+            o.compareByOriginalPositions,
+            i.LEAST_UPPER_BOUND
+          );
+          if (a >= 0) {
+            var u = this._originalMappings[a];
+            if (e.column === undefined) {
+              var s = u.originalLine;
+              while (u && u.originalLine === s) {
+                t.push({
+                  line: o.getArg(u, "generatedLine", null),
+                  column: o.getArg(u, "generatedColumn", null),
+                  lastColumn: o.getArg(u, "lastGeneratedColumn", null),
+                });
+                u = this._originalMappings[++a];
+              }
+            } else {
+              var l = u.originalColumn;
+              while (u && u.originalLine === r && u.originalColumn == l) {
+                t.push({
+                  line: o.getArg(u, "generatedLine", null),
+                  column: o.getArg(u, "generatedColumn", null),
+                  lastColumn: o.getArg(u, "lastGeneratedColumn", null),
+                });
+                u = this._originalMappings[++a];
+              }
+            }
+          }
+          return t;
+        };
+      r.SourceMapConsumer = SourceMapConsumer;
+      function BasicSourceMapConsumer(e, r) {
+        var n = e;
+        if (typeof e === "string") {
+          n = o.parseSourceMapInput(e);
+        }
+        var t = o.getArg(n, "version");
+        var i = o.getArg(n, "sources");
+        var u = o.getArg(n, "names", []);
+        var s = o.getArg(n, "sourceRoot", null);
+        var l = o.getArg(n, "sourcesContent", null);
+        var c = o.getArg(n, "mappings");
+        var p = o.getArg(n, "file", null);
+        if (t != this._version) {
+          throw new Error("Unsupported version: " + t);
+        }
+        if (s) {
+          s = o.normalize(s);
+        }
+        i = i
+          .map(String)
+          .map(o.normalize)
+          .map(function (e) {
+            return s && o.isAbsolute(s) && o.isAbsolute(e)
+              ? o.relative(s, e)
+              : e;
+          });
+        this._names = a.fromArray(u.map(String), true);
+        this._sources = a.fromArray(i, true);
+        this._absoluteSources = this._sources.toArray().map(function (e) {
+          return o.computeSourceURL(s, e, r);
+        });
+        this.sourceRoot = s;
+        this.sourcesContent = l;
+        this._mappings = c;
+        this._sourceMapURL = r;
+        this.file = p;
+      }
+      BasicSourceMapConsumer.prototype = Object.create(
+        SourceMapConsumer.prototype
+      );
+      BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;
+      BasicSourceMapConsumer.prototype._findSourceIndex = function (e) {
+        var r = e;
+        if (this.sourceRoot != null) {
+          r = o.relative(this.sourceRoot, r);
+        }
+        if (this._sources.has(r)) {
+          return this._sources.indexOf(r);
+        }
+        var n;
+        for (n = 0; n < this._absoluteSources.length; ++n) {
+          if (this._absoluteSources[n] == e) {
+            return n;
+          }
+        }
+        return -1;
+      };
+      BasicSourceMapConsumer.fromSourceMap =
+        function SourceMapConsumer_fromSourceMap(e, r) {
+          var n = Object.create(BasicSourceMapConsumer.prototype);
+          var t = (n._names = a.fromArray(e._names.toArray(), true));
+          var i = (n._sources = a.fromArray(e._sources.toArray(), true));
+          n.sourceRoot = e._sourceRoot;
+          n.sourcesContent = e._generateSourcesContent(
+            n._sources.toArray(),
+            n.sourceRoot
+          );
+          n.file = e._file;
+          n._sourceMapURL = r;
+          n._absoluteSources = n._sources.toArray().map(function (e) {
+            return o.computeSourceURL(n.sourceRoot, e, r);
+          });
+          var u = e._mappings.toArray().slice();
+          var l = (n.__generatedMappings = []);
+          var c = (n.__originalMappings = []);
+          for (var p = 0, f = u.length; p < f; p++) {
+            var g = u[p];
+            var h = new Mapping();
+            h.generatedLine = g.generatedLine;
+            h.generatedColumn = g.generatedColumn;
+            if (g.source) {
+              h.source = i.indexOf(g.source);
+              h.originalLine = g.originalLine;
+              h.originalColumn = g.originalColumn;
+              if (g.name) {
+                h.name = t.indexOf(g.name);
+              }
+              c.push(h);
+            }
+            l.push(h);
+          }
+          s(n.__originalMappings, o.compareByOriginalPositions);
+          return n;
+        };
+      BasicSourceMapConsumer.prototype._version = 3;
+      Object.defineProperty(BasicSourceMapConsumer.prototype, "sources", {
+        get: function () {
+          return this._absoluteSources.slice();
+        },
+      });
+      function Mapping() {
+        this.generatedLine = 0;
+        this.generatedColumn = 0;
+        this.source = null;
+        this.originalLine = null;
+        this.originalColumn = null;
+        this.name = null;
+      }
+      BasicSourceMapConsumer.prototype._parseMappings =
+        function SourceMapConsumer_parseMappings(e, r) {
+          var n = 1;
+          var t = 0;
+          var i = 0;
+          var a = 0;
+          var l = 0;
+          var c = 0;
+          var p = e.length;
+          var f = 0;
+          var g = {};
+          var h = {};
+          var d = [];
+          var m = [];
+          var v, S, _, C, y;
+          while (f < p) {
+            if (e.charAt(f) === ";") {
+              n++;
+              f++;
+              t = 0;
+            } else if (e.charAt(f) === ",") {
+              f++;
+            } else {
+              v = new Mapping();
+              v.generatedLine = n;
+              for (C = f; C < p; C++) {
+                if (this._charIsMappingSeparator(e, C)) {
+                  break;
+                }
+              }
+              S = e.slice(f, C);
+              _ = g[S];
+              if (_) {
+                f += S.length;
+              } else {
+                _ = [];
+                while (f < C) {
+                  u.decode(e, f, h);
+                  y = h.value;
+                  f = h.rest;
+                  _.push(y);
+                }
+                if (_.length === 2) {
+                  throw new Error("Found a source, but no line and column");
+                }
+                if (_.length === 3) {
+                  throw new Error("Found a source and line, but no column");
+                }
+                g[S] = _;
+              }
+              v.generatedColumn = t + _[0];
+              t = v.generatedColumn;
+              if (_.length > 1) {
+                v.source = l + _[1];
+                l += _[1];
+                v.originalLine = i + _[2];
+                i = v.originalLine;
+                v.originalLine += 1;
+                v.originalColumn = a + _[3];
+                a = v.originalColumn;
+                if (_.length > 4) {
+                  v.name = c + _[4];
+                  c += _[4];
+                }
+              }
+              m.push(v);
+              if (typeof v.originalLine === "number") {
+                d.push(v);
+              }
+            }
+          }
+          s(m, o.compareByGeneratedPositionsDeflated);
+          this.__generatedMappings = m;
+          s(d, o.compareByOriginalPositions);
+          this.__originalMappings = d;
+        };
+      BasicSourceMapConsumer.prototype._findMapping =
+        function SourceMapConsumer_findMapping(e, r, n, t, o, a) {
+          if (e[n] <= 0) {
+            throw new TypeError(
+              "Line must be greater than or equal to 1, got " + e[n]
+            );
+          }
+          if (e[t] < 0) {
+            throw new TypeError(
+              "Column must be greater than or equal to 0, got " + e[t]
+            );
+          }
+          return i.search(e, r, o, a);
+        };
+      BasicSourceMapConsumer.prototype.computeColumnSpans =
+        function SourceMapConsumer_computeColumnSpans() {
+          for (var e = 0; e < this._generatedMappings.length; ++e) {
+            var r = this._generatedMappings[e];
+            if (e + 1 < this._generatedMappings.length) {
+              var n = this._generatedMappings[e + 1];
+              if (r.generatedLine === n.generatedLine) {
+                r.lastGeneratedColumn = n.generatedColumn - 1;
+                continue;
+              }
+            }
+            r.lastGeneratedColumn = Infinity;
+          }
+        };
+      BasicSourceMapConsumer.prototype.originalPositionFor =
+        function SourceMapConsumer_originalPositionFor(e) {
+          var r = {
+            generatedLine: o.getArg(e, "line"),
+            generatedColumn: o.getArg(e, "column"),
+          };
+          var n = this._findMapping(
+            r,
+            this._generatedMappings,
+            "generatedLine",
+            "generatedColumn",
+            o.compareByGeneratedPositionsDeflated,
+            o.getArg(e, "bias", SourceMapConsumer.GREATEST_LOWER_BOUND)
+          );
+          if (n >= 0) {
+            var t = this._generatedMappings[n];
+            if (t.generatedLine === r.generatedLine) {
+              var i = o.getArg(t, "source", null);
+              if (i !== null) {
+                i = this._sources.at(i);
+                i = o.computeSourceURL(this.sourceRoot, i, this._sourceMapURL);
+              }
+              var a = o.getArg(t, "name", null);
+              if (a !== null) {
+                a = this._names.at(a);
+              }
+              return {
+                source: i,
+                line: o.getArg(t, "originalLine", null),
+                column: o.getArg(t, "originalColumn", null),
+                name: a,
+              };
+            }
+          }
+          return { source: null, line: null, column: null, name: null };
+        };
+      BasicSourceMapConsumer.prototype.hasContentsOfAllSources =
+        function BasicSourceMapConsumer_hasContentsOfAllSources() {
+          if (!this.sourcesContent) {
+            return false;
+          }
+          return (
+            this.sourcesContent.length >= this._sources.size() &&
+            !this.sourcesContent.some(function (e) {
+              return e == null;
+            })
+          );
+        };
+      BasicSourceMapConsumer.prototype.sourceContentFor =
+        function SourceMapConsumer_sourceContentFor(e, r) {
+          if (!this.sourcesContent) {
+            return null;
+          }
+          var n = this._findSourceIndex(e);
+          if (n >= 0) {
+            return this.sourcesContent[n];
+          }
+          var t = e;
+          if (this.sourceRoot != null) {
+            t = o.relative(this.sourceRoot, t);
+          }
+          var i;
+          if (this.sourceRoot != null && (i = o.urlParse(this.sourceRoot))) {
+            var a = t.replace(/^file:\/\//, "");
+            if (i.scheme == "file" && this._sources.has(a)) {
+              return this.sourcesContent[this._sources.indexOf(a)];
+            }
+            if ((!i.path || i.path == "/") && this._sources.has("/" + t)) {
+              return this.sourcesContent[this._sources.indexOf("/" + t)];
+            }
+          }
+          if (r) {
+            return null;
+          } else {
+            throw new Error('"' + t + '" is not in the SourceMap.');
+          }
+        };
+      BasicSourceMapConsumer.prototype.generatedPositionFor =
+        function SourceMapConsumer_generatedPositionFor(e) {
+          var r = o.getArg(e, "source");
+          r = this._findSourceIndex(r);
+          if (r < 0) {
+            return { line: null, column: null, lastColumn: null };
+          }
+          var n = {
+            source: r,
+            originalLine: o.getArg(e, "line"),
+            originalColumn: o.getArg(e, "column"),
+          };
+          var t = this._findMapping(
+            n,
+            this._originalMappings,
+            "originalLine",
+            "originalColumn",
+            o.compareByOriginalPositions,
+            o.getArg(e, "bias", SourceMapConsumer.GREATEST_LOWER_BOUND)
+          );
+          if (t >= 0) {
+            var i = this._originalMappings[t];
+            if (i.source === n.source) {
+              return {
+                line: o.getArg(i, "generatedLine", null),
+                column: o.getArg(i, "generatedColumn", null),
+                lastColumn: o.getArg(i, "lastGeneratedColumn", null),
+              };
+            }
+          }
+          return { line: null, column: null, lastColumn: null };
+        };
+      t = BasicSourceMapConsumer;
+      function IndexedSourceMapConsumer(e, r) {
+        var n = e;
+        if (typeof e === "string") {
+          n = o.parseSourceMapInput(e);
+        }
+        var t = o.getArg(n, "version");
+        var i = o.getArg(n, "sections");
+        if (t != this._version) {
+          throw new Error("Unsupported version: " + t);
+        }
+        this._sources = new a();
+        this._names = new a();
+        var u = { line: -1, column: 0 };
+        this._sections = i.map(function (e) {
+          if (e.url) {
+            throw new Error(
+              "Support for url field in sections not implemented."
+            );
+          }
+          var n = o.getArg(e, "offset");
+          var t = o.getArg(n, "line");
+          var i = o.getArg(n, "column");
+          if (t < u.line || (t === u.line && i < u.column)) {
+            throw new Error(
+              "Section offsets must be ordered and non-overlapping."
+            );
+          }
+          u = n;
+          return {
+            generatedOffset: { generatedLine: t + 1, generatedColumn: i + 1 },
+            consumer: new SourceMapConsumer(o.getArg(e, "map"), r),
+          };
+        });
+      }
+      IndexedSourceMapConsumer.prototype = Object.create(
+        SourceMapConsumer.prototype
+      );
+      IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;
+      IndexedSourceMapConsumer.prototype._version = 3;
+      Object.defineProperty(IndexedSourceMapConsumer.prototype, "sources", {
+        get: function () {
+          var e = [];
+          for (var r = 0; r < this._sections.length; r++) {
+            for (
+              var n = 0;
+              n < this._sections[r].consumer.sources.length;
+              n++
+            ) {
+              e.push(this._sections[r].consumer.sources[n]);
+            }
+          }
+          return e;
+        },
+      });
+      IndexedSourceMapConsumer.prototype.originalPositionFor =
+        function IndexedSourceMapConsumer_originalPositionFor(e) {
+          var r = {
+            generatedLine: o.getArg(e, "line"),
+            generatedColumn: o.getArg(e, "column"),
+          };
+          var n = i.search(r, this._sections, function (e, r) {
+            var n = e.generatedLine - r.generatedOffset.generatedLine;
+            if (n) {
+              return n;
+            }
+            return e.generatedColumn - r.generatedOffset.generatedColumn;
+          });
+          var t = this._sections[n];
+          if (!t) {
+            return { source: null, line: null, column: null, name: null };
+          }
+          return t.consumer.originalPositionFor({
+            line: r.generatedLine - (t.generatedOffset.generatedLine - 1),
+            column:
+              r.generatedColumn -
+              (t.generatedOffset.generatedLine === r.generatedLine
+                ? t.generatedOffset.generatedColumn - 1
+                : 0),
+            bias: e.bias,
+          });
+        };
+      IndexedSourceMapConsumer.prototype.hasContentsOfAllSources =
+        function IndexedSourceMapConsumer_hasContentsOfAllSources() {
+          return this._sections.every(function (e) {
+            return e.consumer.hasContentsOfAllSources();
+          });
+        };
+      IndexedSourceMapConsumer.prototype.sourceContentFor =
+        function IndexedSourceMapConsumer_sourceContentFor(e, r) {
+          for (var n = 0; n < this._sections.length; n++) {
+            var t = this._sections[n];
+            var o = t.consumer.sourceContentFor(e, true);
+            if (o) {
+              return o;
+            }
+          }
+          if (r) {
+            return null;
+          } else {
+            throw new Error('"' + e + '" is not in the SourceMap.');
+          }
+        };
+      IndexedSourceMapConsumer.prototype.generatedPositionFor =
+        function IndexedSourceMapConsumer_generatedPositionFor(e) {
+          for (var r = 0; r < this._sections.length; r++) {
+            var n = this._sections[r];
+            if (n.consumer._findSourceIndex(o.getArg(e, "source")) === -1) {
+              continue;
+            }
+            var t = n.consumer.generatedPositionFor(e);
+            if (t) {
+              var i = {
+                line: t.line + (n.generatedOffset.generatedLine - 1),
+                column:
+                  t.column +
+                  (n.generatedOffset.generatedLine === t.line
+                    ? n.generatedOffset.generatedColumn - 1
+                    : 0),
+              };
+              return i;
+            }
+          }
+          return { line: null, column: null };
+        };
+      IndexedSourceMapConsumer.prototype._parseMappings =
+        function IndexedSourceMapConsumer_parseMappings(e, r) {
+          this.__generatedMappings = [];
+          this.__originalMappings = [];
+          for (var n = 0; n < this._sections.length; n++) {
+            var t = this._sections[n];
+            var i = t.consumer._generatedMappings;
+            for (var a = 0; a < i.length; a++) {
+              var u = i[a];
+              var l = t.consumer._sources.at(u.source);
+              l = o.computeSourceURL(
+                t.consumer.sourceRoot,
+                l,
+                this._sourceMapURL
+              );
+              this._sources.add(l);
+              l = this._sources.indexOf(l);
+              var c = null;
+              if (u.name) {
+                c = t.consumer._names.at(u.name);
+                this._names.add(c);
+                c = this._names.indexOf(c);
+              }
+              var p = {
+                source: l,
+                generatedLine:
+                  u.generatedLine + (t.generatedOffset.generatedLine - 1),
+                generatedColumn:
+                  u.generatedColumn +
+                  (t.generatedOffset.generatedLine === u.generatedLine
+                    ? t.generatedOffset.generatedColumn - 1
+                    : 0),
+                originalLine: u.originalLine,
+                originalColumn: u.originalColumn,
+                name: c,
+              };
+              this.__generatedMappings.push(p);
+              if (typeof p.originalLine === "number") {
+                this.__originalMappings.push(p);
+              }
+            }
+          }
+          s(this.__generatedMappings, o.compareByGeneratedPositionsDeflated);
+          s(this.__originalMappings, o.compareByOriginalPositions);
+        };
+      t = IndexedSourceMapConsumer;
+    },
+    591: (e, r, n) => {
+      var t = n(449);
+      var o = n(339);
+      var i = n(274).I;
+      var a = n(680).H;
+      function SourceMapGenerator(e) {
+        if (!e) {
+          e = {};
+        }
+        this._file = o.getArg(e, "file", null);
+        this._sourceRoot = o.getArg(e, "sourceRoot", null);
+        this._skipValidation = o.getArg(e, "skipValidation", false);
+        this._sources = new i();
+        this._names = new i();
+        this._mappings = new a();
+        this._sourcesContents = null;
+      }
+      SourceMapGenerator.prototype._version = 3;
+      SourceMapGenerator.fromSourceMap =
+        function SourceMapGenerator_fromSourceMap(e) {
+          var r = e.sourceRoot;
+          var n = new SourceMapGenerator({ file: e.file, sourceRoot: r });
+          e.eachMapping(function (e) {
+            var t = {
+              generated: { line: e.generatedLine, column: e.generatedColumn },
+            };
+            if (e.source != null) {
+              t.source = e.source;
+              if (r != null) {
+                t.source = o.relative(r, t.source);
+              }
+              t.original = { line: e.originalLine, column: e.originalColumn };
+              if (e.name != null) {
+                t.name = e.name;
+              }
+            }
+            n.addMapping(t);
+          });
+          e.sources.forEach(function (t) {
+            var i = t;
+            if (r !== null) {
+              i = o.relative(r, t);
+            }
+            if (!n._sources.has(i)) {
+              n._sources.add(i);
+            }
+            var a = e.sourceContentFor(t);
+            if (a != null) {
+              n.setSourceContent(t, a);
+            }
+          });
+          return n;
+        };
+      SourceMapGenerator.prototype.addMapping =
+        function SourceMapGenerator_addMapping(e) {
+          var r = o.getArg(e, "generated");
+          var n = o.getArg(e, "original", null);
+          var t = o.getArg(e, "source", null);
+          var i = o.getArg(e, "name", null);
+          if (!this._skipValidation) {
+            this._validateMapping(r, n, t, i);
+          }
+          if (t != null) {
+            t = String(t);
+            if (!this._sources.has(t)) {
+              this._sources.add(t);
+            }
+          }
+          if (i != null) {
+            i = String(i);
+            if (!this._names.has(i)) {
+              this._names.add(i);
+            }
+          }
+          this._mappings.add({
+            generatedLine: r.line,
+            generatedColumn: r.column,
+            originalLine: n != null && n.line,
+            originalColumn: n != null && n.column,
+            source: t,
+            name: i,
+          });
+        };
+      SourceMapGenerator.prototype.setSourceContent =
+        function SourceMapGenerator_setSourceContent(e, r) {
+          var n = e;
+          if (this._sourceRoot != null) {
+            n = o.relative(this._sourceRoot, n);
+          }
+          if (r != null) {
+            if (!this._sourcesContents) {
+              this._sourcesContents = Object.create(null);
+            }
+            this._sourcesContents[o.toSetString(n)] = r;
+          } else if (this._sourcesContents) {
+            delete this._sourcesContents[o.toSetString(n)];
+            if (Object.keys(this._sourcesContents).length === 0) {
+              this._sourcesContents = null;
+            }
+          }
+        };
+      SourceMapGenerator.prototype.applySourceMap =
+        function SourceMapGenerator_applySourceMap(e, r, n) {
+          var t = r;
+          if (r == null) {
+            if (e.file == null) {
+              throw new Error(
+                "SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, " +
+                  'or the source map\'s "file" property. Both were omitted.'
+              );
+            }
+            t = e.file;
+          }
+          var a = this._sourceRoot;
+          if (a != null) {
+            t = o.relative(a, t);
+          }
+          var u = new i();
+          var s = new i();
+          this._mappings.unsortedForEach(function (r) {
+            if (r.source === t && r.originalLine != null) {
+              var i = e.originalPositionFor({
+                line: r.originalLine,
+                column: r.originalColumn,
+              });
+              if (i.source != null) {
+                r.source = i.source;
+                if (n != null) {
+                  r.source = o.join(n, r.source);
+                }
+                if (a != null) {
+                  r.source = o.relative(a, r.source);
+                }
+                r.originalLine = i.line;
+                r.originalColumn = i.column;
+                if (i.name != null) {
+                  r.name = i.name;
+                }
+              }
+            }
+            var l = r.source;
+            if (l != null && !u.has(l)) {
+              u.add(l);
+            }
+            var c = r.name;
+            if (c != null && !s.has(c)) {
+              s.add(c);
+            }
+          }, this);
+          this._sources = u;
+          this._names = s;
+          e.sources.forEach(function (r) {
+            var t = e.sourceContentFor(r);
+            if (t != null) {
+              if (n != null) {
+                r = o.join(n, r);
+              }
+              if (a != null) {
+                r = o.relative(a, r);
+              }
+              this.setSourceContent(r, t);
+            }
+          }, this);
+        };
+      SourceMapGenerator.prototype._validateMapping =
+        function SourceMapGenerator_validateMapping(e, r, n, t) {
+          if (r && typeof r.line !== "number" && typeof r.column !== "number") {
+            throw new Error(
+              "original.line and original.column are not numbers -- you probably meant to omit " +
+                "the original mapping entirely and only map the generated position. If so, pass " +
+                "null for the original mapping instead of an object with empty or null values."
+            );
+          }
+          if (
+            e &&
+            "line" in e &&
+            "column" in e &&
+            e.line > 0 &&
+            e.column >= 0 &&
+            !r &&
+            !n &&
+            !t
+          ) {
+            return;
+          } else if (
+            e &&
+            "line" in e &&
+            "column" in e &&
+            r &&
+            "line" in r &&
+            "column" in r &&
+            e.line > 0 &&
+            e.column >= 0 &&
+            r.line > 0 &&
+            r.column >= 0 &&
+            n
+          ) {
+            return;
+          } else {
+            throw new Error(
+              "Invalid mapping: " +
+                JSON.stringify({
+                  generated: e,
+                  source: n,
+                  original: r,
+                  name: t,
+                })
+            );
+          }
+        };
+      SourceMapGenerator.prototype._serializeMappings =
+        function SourceMapGenerator_serializeMappings() {
+          var e = 0;
+          var r = 1;
+          var n = 0;
+          var i = 0;
+          var a = 0;
+          var u = 0;
+          var s = "";
+          var l;
+          var c;
+          var p;
+          var f;
+          var g = this._mappings.toArray();
+          for (var h = 0, d = g.length; h < d; h++) {
+            c = g[h];
+            l = "";
+            if (c.generatedLine !== r) {
+              e = 0;
+              while (c.generatedLine !== r) {
+                l += ";";
+                r++;
+              }
+            } else {
+              if (h > 0) {
+                if (!o.compareByGeneratedPositionsInflated(c, g[h - 1])) {
+                  continue;
+                }
+                l += ",";
+              }
+            }
+            l += t.encode(c.generatedColumn - e);
+            e = c.generatedColumn;
+            if (c.source != null) {
+              f = this._sources.indexOf(c.source);
+              l += t.encode(f - u);
+              u = f;
+              l += t.encode(c.originalLine - 1 - i);
+              i = c.originalLine - 1;
+              l += t.encode(c.originalColumn - n);
+              n = c.originalColumn;
+              if (c.name != null) {
+                p = this._names.indexOf(c.name);
+                l += t.encode(p - a);
+                a = p;
+              }
+            }
+            s += l;
+          }
+          return s;
+        };
+      SourceMapGenerator.prototype._generateSourcesContent =
+        function SourceMapGenerator_generateSourcesContent(e, r) {
+          return e.map(function (e) {
+            if (!this._sourcesContents) {
+              return null;
+            }
+            if (r != null) {
+              e = o.relative(r, e);
+            }
+            var n = o.toSetString(e);
+            return Object.prototype.hasOwnProperty.call(
+              this._sourcesContents,
+              n
+            )
+              ? this._sourcesContents[n]
+              : null;
+          }, this);
+        };
+      SourceMapGenerator.prototype.toJSON =
+        function SourceMapGenerator_toJSON() {
+          var e = {
+            version: this._version,
+            sources: this._sources.toArray(),
+            names: this._names.toArray(),
+            mappings: this._serializeMappings(),
+          };
+          if (this._file != null) {
+            e.file = this._file;
+          }
+          if (this._sourceRoot != null) {
+            e.sourceRoot = this._sourceRoot;
+          }
+          if (this._sourcesContents) {
+            e.sourcesContent = this._generateSourcesContent(
+              e.sources,
+              e.sourceRoot
+            );
+          }
+          return e;
+        };
+      SourceMapGenerator.prototype.toString =
+        function SourceMapGenerator_toString() {
+          return JSON.stringify(this.toJSON());
+        };
+      r.h = SourceMapGenerator;
+    },
+    351: (e, r, n) => {
+      var t;
+      var o = n(591).h;
+      var i = n(339);
+      var a = /(\r?\n)/;
+      var u = 10;
+      var s = "$$$isSourceNode$$$";
+      function SourceNode(e, r, n, t, o) {
+        this.children = [];
+        this.sourceContents = {};
+        this.line = e == null ? null : e;
+        this.column = r == null ? null : r;
+        this.source = n == null ? null : n;
+        this.name = o == null ? null : o;
+        this[s] = true;
+        if (t != null) this.add(t);
+      }
+      SourceNode.fromStringWithSourceMap =
+        function SourceNode_fromStringWithSourceMap(e, r, n) {
+          var t = new SourceNode();
+          var o = e.split(a);
+          var u = 0;
+          var shiftNextLine = function () {
+            var e = getNextLine();
+            var r = getNextLine() || "";
+            return e + r;
+            function getNextLine() {
+              return u < o.length ? o[u++] : undefined;
+            }
+          };
+          var s = 1,
+            l = 0;
+          var c = null;
+          r.eachMapping(function (e) {
+            if (c !== null) {
+              if (s < e.generatedLine) {
+                addMappingWithCode(c, shiftNextLine());
+                s++;
+                l = 0;
+              } else {
+                var r = o[u] || "";
+                var n = r.substr(0, e.generatedColumn - l);
+                o[u] = r.substr(e.generatedColumn - l);
+                l = e.generatedColumn;
+                addMappingWithCode(c, n);
+                c = e;
+                return;
+              }
+            }
+            while (s < e.generatedLine) {
+              t.add(shiftNextLine());
+              s++;
+            }
+            if (l < e.generatedColumn) {
+              var r = o[u] || "";
+              t.add(r.substr(0, e.generatedColumn));
+              o[u] = r.substr(e.generatedColumn);
+              l = e.generatedColumn;
+            }
+            c = e;
+          }, this);
+          if (u < o.length) {
+            if (c) {
+              addMappingWithCode(c, shiftNextLine());
+            }
+            t.add(o.splice(u).join(""));
+          }
+          r.sources.forEach(function (e) {
+            var o = r.sourceContentFor(e);
+            if (o != null) {
+              if (n != null) {
+                e = i.join(n, e);
+              }
+              t.setSourceContent(e, o);
+            }
+          });
+          return t;
+          function addMappingWithCode(e, r) {
+            if (e === null || e.source === undefined) {
+              t.add(r);
+            } else {
+              var o = n ? i.join(n, e.source) : e.source;
+              t.add(
+                new SourceNode(e.originalLine, e.originalColumn, o, r, e.name)
+              );
+            }
+          }
+        };
+      SourceNode.prototype.add = function SourceNode_add(e) {
+        if (Array.isArray(e)) {
+          e.forEach(function (e) {
+            this.add(e);
+          }, this);
+        } else if (e[s] || typeof e === "string") {
+          if (e) {
+            this.children.push(e);
+          }
+        } else {
+          throw new TypeError(
+            "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " +
+              e
+          );
+        }
+        return this;
+      };
+      SourceNode.prototype.prepend = function SourceNode_prepend(e) {
+        if (Array.isArray(e)) {
+          for (var r = e.length - 1; r >= 0; r--) {
+            this.prepend(e[r]);
+          }
+        } else if (e[s] || typeof e === "string") {
+          this.children.unshift(e);
+        } else {
+          throw new TypeError(
+            "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " +
+              e
+          );
+        }
+        return this;
+      };
+      SourceNode.prototype.walk = function SourceNode_walk(e) {
+        var r;
+        for (var n = 0, t = this.children.length; n < t; n++) {
+          r = this.children[n];
+          if (r[s]) {
+            r.walk(e);
+          } else {
+            if (r !== "") {
+              e(r, {
+                source: this.source,
+                line: this.line,
+                column: this.column,
+                name: this.name,
+              });
+            }
+          }
+        }
+      };
+      SourceNode.prototype.join = function SourceNode_join(e) {
+        var r;
+        var n;
+        var t = this.children.length;
+        if (t > 0) {
+          r = [];
+          for (n = 0; n < t - 1; n++) {
+            r.push(this.children[n]);
+            r.push(e);
+          }
+          r.push(this.children[n]);
+          this.children = r;
+        }
+        return this;
+      };
+      SourceNode.prototype.replaceRight = function SourceNode_replaceRight(
+        e,
+        r
+      ) {
+        var n = this.children[this.children.length - 1];
+        if (n[s]) {
+          n.replaceRight(e, r);
+        } else if (typeof n === "string") {
+          this.children[this.children.length - 1] = n.replace(e, r);
+        } else {
+          this.children.push("".replace(e, r));
+        }
+        return this;
+      };
+      SourceNode.prototype.setSourceContent =
+        function SourceNode_setSourceContent(e, r) {
+          this.sourceContents[i.toSetString(e)] = r;
+        };
+      SourceNode.prototype.walkSourceContents =
+        function SourceNode_walkSourceContents(e) {
+          for (var r = 0, n = this.children.length; r < n; r++) {
+            if (this.children[r][s]) {
+              this.children[r].walkSourceContents(e);
+            }
+          }
+          var t = Object.keys(this.sourceContents);
+          for (var r = 0, n = t.length; r < n; r++) {
+            e(i.fromSetString(t[r]), this.sourceContents[t[r]]);
+          }
+        };
+      SourceNode.prototype.toString = function SourceNode_toString() {
+        var e = "";
+        this.walk(function (r) {
+          e += r;
+        });
+        return e;
+      };
+      SourceNode.prototype.toStringWithSourceMap =
+        function SourceNode_toStringWithSourceMap(e) {
+          var r = { code: "", line: 1, column: 0 };
+          var n = new o(e);
+          var t = false;
+          var i = null;
+          var a = null;
+          var s = null;
+          var l = null;
+          this.walk(function (e, o) {
+            r.code += e;
+            if (o.source !== null && o.line !== null && o.column !== null) {
+              if (
+                i !== o.source ||
+                a !== o.line ||
+                s !== o.column ||
+                l !== o.name
+              ) {
+                n.addMapping({
+                  source: o.source,
+                  original: { line: o.line, column: o.column },
+                  generated: { line: r.line, column: r.column },
+                  name: o.name,
+                });
+              }
+              i = o.source;
+              a = o.line;
+              s = o.column;
+              l = o.name;
+              t = true;
+            } else if (t) {
+              n.addMapping({ generated: { line: r.line, column: r.column } });
+              i = null;
+              t = false;
+            }
+            for (var c = 0, p = e.length; c < p; c++) {
+              if (e.charCodeAt(c) === u) {
+                r.line++;
+                r.column = 0;
+                if (c + 1 === p) {
+                  i = null;
+                  t = false;
+                } else if (t) {
+                  n.addMapping({
+                    source: o.source,
+                    original: { line: o.line, column: o.column },
+                    generated: { line: r.line, column: r.column },
+                    name: o.name,
+                  });
+                }
+              } else {
+                r.column++;
+              }
+            }
+          });
+          this.walkSourceContents(function (e, r) {
+            n.setSourceContent(e, r);
+          });
+          return { code: r.code, map: n };
+        };
+      t = SourceNode;
+    },
+    339: (e, r) => {
+      function getArg(e, r, n) {
+        if (r in e) {
+          return e[r];
+        } else if (arguments.length === 3) {
+          return n;
+        } else {
+          throw new Error('"' + r + '" is a required argument.');
+        }
+      }
+      r.getArg = getArg;
+      var n = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;
+      var t = /^data:.+\,.+$/;
+      function urlParse(e) {
+        var r = e.match(n);
+        if (!r) {
+          return null;
+        }
+        return { scheme: r[1], auth: r[2], host: r[3], port: r[4], path: r[5] };
+      }
+      r.urlParse = urlParse;
+      function urlGenerate(e) {
+        var r = "";
+        if (e.scheme) {
+          r += e.scheme + ":";
+        }
+        r += "//";
+        if (e.auth) {
+          r += e.auth + "@";
+        }
+        if (e.host) {
+          r += e.host;
+        }
+        if (e.port) {
+          r += ":" + e.port;
+        }
+        if (e.path) {
+          r += e.path;
+        }
+        return r;
+      }
+      r.urlGenerate = urlGenerate;
+      function normalize(e) {
+        var n = e;
+        var t = urlParse(e);
+        if (t) {
+          if (!t.path) {
+            return e;
+          }
+          n = t.path;
+        }
+        var o = r.isAbsolute(n);
+        var i = n.split(/\/+/);
+        for (var a, u = 0, s = i.length - 1; s >= 0; s--) {
+          a = i[s];
+          if (a === ".") {
+            i.splice(s, 1);
+          } else if (a === "..") {
+            u++;
+          } else if (u > 0) {
+            if (a === "") {
+              i.splice(s + 1, u);
+              u = 0;
+            } else {
+              i.splice(s, 2);
+              u--;
+            }
+          }
+        }
+        n = i.join("/");
+        if (n === "") {
+          n = o ? "/" : ".";
+        }
+        if (t) {
+          t.path = n;
+          return urlGenerate(t);
+        }
+        return n;
+      }
+      r.normalize = normalize;
+      function join(e, r) {
+        if (e === "") {
+          e = ".";
+        }
+        if (r === "") {
+          r = ".";
+        }
+        var n = urlParse(r);
+        var o = urlParse(e);
+        if (o) {
+          e = o.path || "/";
+        }
+        if (n && !n.scheme) {
+          if (o) {
+            n.scheme = o.scheme;
+          }
+          return urlGenerate(n);
+        }
+        if (n || r.match(t)) {
+          return r;
+        }
+        if (o && !o.host && !o.path) {
+          o.host = r;
+          return urlGenerate(o);
+        }
+        var i =
+          r.charAt(0) === "/" ? r : normalize(e.replace(/\/+$/, "") + "/" + r);
+        if (o) {
+          o.path = i;
+          return urlGenerate(o);
+        }
+        return i;
+      }
+      r.join = join;
+      r.isAbsolute = function (e) {
+        return e.charAt(0) === "/" || n.test(e);
+      };
+      function relative(e, r) {
+        if (e === "") {
+          e = ".";
+        }
+        e = e.replace(/\/$/, "");
+        var n = 0;
+        while (r.indexOf(e + "/") !== 0) {
+          var t = e.lastIndexOf("/");
+          if (t < 0) {
+            return r;
+          }
+          e = e.slice(0, t);
+          if (e.match(/^([^\/]+:\/)?\/*$/)) {
+            return r;
+          }
+          ++n;
+        }
+        return Array(n + 1).join("../") + r.substr(e.length + 1);
+      }
+      r.relative = relative;
+      var o = (function () {
+        var e = Object.create(null);
+        return !("__proto__" in e);
+      })();
+      function identity(e) {
+        return e;
+      }
+      function toSetString(e) {
+        if (isProtoString(e)) {
+          return "$" + e;
+        }
+        return e;
+      }
+      r.toSetString = o ? identity : toSetString;
+      function fromSetString(e) {
+        if (isProtoString(e)) {
+          return e.slice(1);
+        }
+        return e;
+      }
+      r.fromSetString = o ? identity : fromSetString;
+      function isProtoString(e) {
+        if (!e) {
+          return false;
+        }
+        var r = e.length;
+        if (r < 9) {
+          return false;
+        }
+        if (
+          e.charCodeAt(r - 1) !== 95 ||
+          e.charCodeAt(r - 2) !== 95 ||
+          e.charCodeAt(r - 3) !== 111 ||
+          e.charCodeAt(r - 4) !== 116 ||
+          e.charCodeAt(r - 5) !== 111 ||
+          e.charCodeAt(r - 6) !== 114 ||
+          e.charCodeAt(r - 7) !== 112 ||
+          e.charCodeAt(r - 8) !== 95 ||
+          e.charCodeAt(r - 9) !== 95
+        ) {
+          return false;
+        }
+        for (var n = r - 10; n >= 0; n--) {
+          if (e.charCodeAt(n) !== 36) {
+            return false;
+          }
+        }
+        return true;
+      }
+      function compareByOriginalPositions(e, r, n) {
+        var t = strcmp(e.source, r.source);
+        if (t !== 0) {
+          return t;
+        }
+        t = e.originalLine - r.originalLine;
+        if (t !== 0) {
+          return t;
+        }
+        t = e.originalColumn - r.originalColumn;
+        if (t !== 0 || n) {
+          return t;
+        }
+        t = e.generatedColumn - r.generatedColumn;
+        if (t !== 0) {
+          return t;
+        }
+        t = e.generatedLine - r.generatedLine;
+        if (t !== 0) {
+          return t;
+        }
+        return strcmp(e.name, r.name);
+      }
+      r.compareByOriginalPositions = compareByOriginalPositions;
+      function compareByGeneratedPositionsDeflated(e, r, n) {
+        var t = e.generatedLine - r.generatedLine;
+        if (t !== 0) {
+          return t;
+        }
+        t = e.generatedColumn - r.generatedColumn;
+        if (t !== 0 || n) {
+          return t;
+        }
+        t = strcmp(e.source, r.source);
+        if (t !== 0) {
+          return t;
+        }
+        t = e.originalLine - r.originalLine;
+        if (t !== 0) {
+          return t;
+        }
+        t = e.originalColumn - r.originalColumn;
+        if (t !== 0) {
+          return t;
+        }
+        return strcmp(e.name, r.name);
+      }
+      r.compareByGeneratedPositionsDeflated =
+        compareByGeneratedPositionsDeflated;
+      function strcmp(e, r) {
+        if (e === r) {
+          return 0;
+        }
+        if (e === null) {
+          return 1;
+        }
+        if (r === null) {
+          return -1;
+        }
+        if (e > r) {
+          return 1;
+        }
+        return -1;
+      }
+      function compareByGeneratedPositionsInflated(e, r) {
+        var n = e.generatedLine - r.generatedLine;
+        if (n !== 0) {
+          return n;
+        }
+        n = e.generatedColumn - r.generatedColumn;
+        if (n !== 0) {
+          return n;
+        }
+        n = strcmp(e.source, r.source);
+        if (n !== 0) {
+          return n;
+        }
+        n = e.originalLine - r.originalLine;
+        if (n !== 0) {
+          return n;
+        }
+        n = e.originalColumn - r.originalColumn;
+        if (n !== 0) {
+          return n;
+        }
+        return strcmp(e.name, r.name);
+      }
+      r.compareByGeneratedPositionsInflated =
+        compareByGeneratedPositionsInflated;
+      function parseSourceMapInput(e) {
+        return JSON.parse(e.replace(/^\)]}'[^\n]*\n/, ""));
+      }
+      r.parseSourceMapInput = parseSourceMapInput;
+      function computeSourceURL(e, r, n) {
+        r = r || "";
+        if (e) {
+          if (e[e.length - 1] !== "/" && r[0] !== "/") {
+            e += "/";
+          }
+          r = e + r;
+        }
+        if (n) {
+          var t = urlParse(n);
+          if (!t) {
+            throw new Error("sourceMapURL could not be parsed");
+          }
+          if (t.path) {
+            var o = t.path.lastIndexOf("/");
+            if (o >= 0) {
+              t.path = t.path.substring(0, o + 1);
+            }
+          }
+          r = join(urlGenerate(t), r);
+        }
+        return normalize(r);
+      }
+      r.computeSourceURL = computeSourceURL;
+    },
+    997: (e, r, n) => {
+      n(591).h;
+      r.SourceMapConsumer = n(952).SourceMapConsumer;
+      n(351);
+    },
+    284: (e, r, n) => {
+      e = n.nmd(e);
+      var t = n(997).SourceMapConsumer;
+      var o = n(17);
+      var i;
+      try {
+        i = n(147);
+        if (!i.existsSync || !i.readFileSync) {
+          i = null;
+        }
+      } catch (e) {}
+      var a = n(650);
+      function dynamicRequire(e, r) {
+        return e.require(r);
+      }
+      var u = false;
+      var s = false;
+      var l = false;
+      var c = "auto";
+      var p = {};
+      var f = {};
+      var g = /^data:application\/json[^,]+base64,/;
+      var h = [];
+      var d = [];
+      function isInBrowser() {
+        if (c === "browser") return true;
+        if (c === "node") return false;
+        return (
+          typeof window !== "undefined" &&
+          typeof XMLHttpRequest === "function" &&
+          !(
+            window.require &&
+            window.module &&
+            window.process &&
+            window.process.type === "renderer"
+          )
+        );
+      }
+      function hasGlobalProcessEventEmitter() {
+        return (
+          typeof process === "object" &&
+          process !== null &&
+          typeof process.on === "function"
+        );
+      }
+      function globalProcessVersion() {
+        if (typeof process === "object" && process !== null) {
+          return process.version;
+        } else {
+          return "";
+        }
+      }
+      function globalProcessStderr() {
+        if (typeof process === "object" && process !== null) {
+          return process.stderr;
+        }
+      }
+      function globalProcessExit(e) {
+        if (
+          typeof process === "object" &&
+          process !== null &&
+          typeof process.exit === "function"
+        ) {
+          return process.exit(e);
+        }
+      }
+      function handlerExec(e) {
+        return function (r) {
+          for (var n = 0; n < e.length; n++) {
+            var t = e[n](r);
+            if (t) {
+              return t;
+            }
+          }
+          return null;
+        };
+      }
+      var m = handlerExec(h);
+      h.push(function (e) {
+        e = e.trim();
+        if (/^file:/.test(e)) {
+          e = e.replace(/file:\/\/\/(\w:)?/, function (e, r) {
+            return r ? "" : "/";
+          });
+        }
+        if (e in p) {
+          return p[e];
+        }
+        var r = "";
+        try {
+          if (!i) {
+            var n = new XMLHttpRequest();
+            n.open("GET", e, false);
+            n.send(null);
+            if (n.readyState === 4 && n.status === 200) {
+              r = n.responseText;
+            }
+          } else if (i.existsSync(e)) {
+            r = i.readFileSync(e, "utf8");
+          }
+        } catch (e) {}
+        return (p[e] = r);
+      });
+      function supportRelativeURL(e, r) {
+        if (!e) return r;
+        var n = o.dirname(e);
+        var t = /^\w+:\/\/[^\/]*/.exec(n);
+        var i = t ? t[0] : "";
+        var a = n.slice(i.length);
+        if (i && /^\/\w\:/.test(a)) {
+          i += "/";
+          return i + o.resolve(n.slice(i.length), r).replace(/\\/g, "/");
+        }
+        return i + o.resolve(n.slice(i.length), r);
+      }
+      function retrieveSourceMapURL(e) {
+        var r;
+        if (isInBrowser()) {
+          try {
+            var n = new XMLHttpRequest();
+            n.open("GET", e, false);
+            n.send(null);
+            r = n.readyState === 4 ? n.responseText : null;
+            var t =
+              n.getResponseHeader("SourceMap") ||
+              n.getResponseHeader("X-SourceMap");
+            if (t) {
+              return t;
+            }
+          } catch (e) {}
+        }
+        r = m(e);
+        var o =
+          /(?:\/\/[@#][\s]*sourceMappingURL=([^\s'"]+)[\s]*$)|(?:\/\*[@#][\s]*sourceMappingURL=([^\s*'"]+)[\s]*(?:\*\/)[\s]*$)/gm;
+        var i, a;
+        while ((a = o.exec(r))) i = a;
+        if (!i) return null;
+        return i[1];
+      }
+      var v = handlerExec(d);
+      d.push(function (e) {
+        var r = retrieveSourceMapURL(e);
+        if (!r) return null;
+        var n;
+        if (g.test(r)) {
+          var t = r.slice(r.indexOf(",") + 1);
+          n = a(t, "base64").toString();
+          r = e;
+        } else {
+          r = supportRelativeURL(e, r);
+          n = m(r);
+        }
+        if (!n) {
+          return null;
+        }
+        return { url: r, map: n };
+      });
+      function mapSourcePosition(e) {
+        var r = f[e.source];
+        if (!r) {
+          var n = v(e.source);
+          if (n) {
+            r = f[e.source] = { url: n.url, map: new t(n.map) };
+            if (r.map.sourcesContent) {
+              r.map.sources.forEach(function (e, n) {
+                var t = r.map.sourcesContent[n];
+                if (t) {
+                  var o = supportRelativeURL(r.url, e);
+                  p[o] = t;
+                }
+              });
+            }
+          } else {
+            r = f[e.source] = { url: null, map: null };
+          }
+        }
+        if (r && r.map && typeof r.map.originalPositionFor === "function") {
+          var o = r.map.originalPositionFor(e);
+          if (o.source !== null) {
+            o.source = supportRelativeURL(r.url, o.source);
+            return o;
+          }
+        }
+        return e;
+      }
+      function mapEvalOrigin(e) {
+        var r = /^eval at ([^(]+) \((.+):(\d+):(\d+)\)$/.exec(e);
+        if (r) {
+          var n = mapSourcePosition({
+            source: r[2],
+            line: +r[3],
+            column: r[4] - 1,
+          });
+          return (
+            "eval at " +
+            r[1] +
+            " (" +
+            n.source +
+            ":" +
+            n.line +
+            ":" +
+            (n.column + 1) +
+            ")"
+          );
+        }
+        r = /^eval at ([^(]+) \((.+)\)$/.exec(e);
+        if (r) {
+          return "eval at " + r[1] + " (" + mapEvalOrigin(r[2]) + ")";
+        }
+        return e;
+      }
+      function CallSiteToString() {
+        var e;
+        var r = "";
+        if (this.isNative()) {
+          r = "native";
+        } else {
+          e = this.getScriptNameOrSourceURL();
+          if (!e && this.isEval()) {
+            r = this.getEvalOrigin();
+            r += ", ";
+          }
+          if (e) {
+            r += e;
+          } else {
+            r += "";
+          }
+          var n = this.getLineNumber();
+          if (n != null) {
+            r += ":" + n;
+            var t = this.getColumnNumber();
+            if (t) {
+              r += ":" + t;
+            }
+          }
+        }
+        var o = "";
+        var i = this.getFunctionName();
+        var a = true;
+        var u = this.isConstructor();
+        var s = !(this.isToplevel() || u);
+        if (s) {
+          var l = this.getTypeName();
+          if (l === "[object Object]") {
+            l = "null";
+          }
+          var c = this.getMethodName();
+          if (i) {
+            if (l && i.indexOf(l) != 0) {
+              o += l + ".";
+            }
+            o += i;
+            if (c && i.indexOf("." + c) != i.length - c.length - 1) {
+              o += " [as " + c + "]";
+            }
+          } else {
+            o += l + "." + (c || "");
+          }
+        } else if (u) {
+          o += "new " + (i || "");
+        } else if (i) {
+          o += i;
+        } else {
+          o += r;
+          a = false;
+        }
+        if (a) {
+          o += " (" + r + ")";
+        }
+        return o;
+      }
+      function cloneCallSite(e) {
+        var r = {};
+        Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(function (
+          n
+        ) {
+          r[n] = /^(?:is|get)/.test(n)
+            ? function () {
+                return e[n].call(e);
+              }
+            : e[n];
+        });
+        r.toString = CallSiteToString;
+        return r;
+      }
+      function wrapCallSite(e, r) {
+        if (r === undefined) {
+          r = { nextPosition: null, curPosition: null };
+        }
+        if (e.isNative()) {
+          r.curPosition = null;
+          return e;
+        }
+        var n = e.getFileName() || e.getScriptNameOrSourceURL();
+        if (n) {
+          var t = e.getLineNumber();
+          var o = e.getColumnNumber() - 1;
+          var i =
+            /^v(10\.1[6-9]|10\.[2-9][0-9]|10\.[0-9]{3,}|1[2-9]\d*|[2-9]\d|\d{3,}|11\.11)/;
+          var a = i.test(globalProcessVersion()) ? 0 : 62;
+          if (t === 1 && o > a && !isInBrowser() && !e.isEval()) {
+            o -= a;
+          }
+          var u = mapSourcePosition({ source: n, line: t, column: o });
+          r.curPosition = u;
+          e = cloneCallSite(e);
+          var s = e.getFunctionName;
+          e.getFunctionName = function () {
+            if (r.nextPosition == null) {
+              return s();
+            }
+            return r.nextPosition.name || s();
+          };
+          e.getFileName = function () {
+            return u.source;
+          };
+          e.getLineNumber = function () {
+            return u.line;
+          };
+          e.getColumnNumber = function () {
+            return u.column + 1;
+          };
+          e.getScriptNameOrSourceURL = function () {
+            return u.source;
+          };
+          return e;
+        }
+        var l = e.isEval() && e.getEvalOrigin();
+        if (l) {
+          l = mapEvalOrigin(l);
+          e = cloneCallSite(e);
+          e.getEvalOrigin = function () {
+            return l;
+          };
+          return e;
+        }
+        return e;
+      }
+      function prepareStackTrace(e, r) {
+        if (l) {
+          p = {};
+          f = {};
+        }
+        var n = e.name || "Error";
+        var t = e.message || "";
+        var o = n + ": " + t;
+        var i = { nextPosition: null, curPosition: null };
+        var a = [];
+        for (var u = r.length - 1; u >= 0; u--) {
+          a.push("\n    at " + wrapCallSite(r[u], i));
+          i.nextPosition = i.curPosition;
+        }
+        i.curPosition = i.nextPosition = null;
+        return o + a.reverse().join("");
+      }
+      function getErrorSource(e) {
+        var r = /\n    at [^(]+ \((.*):(\d+):(\d+)\)/.exec(e.stack);
+        if (r) {
+          var n = r[1];
+          var t = +r[2];
+          var o = +r[3];
+          var a = p[n];
+          if (!a && i && i.existsSync(n)) {
+            try {
+              a = i.readFileSync(n, "utf8");
+            } catch (e) {
+              a = "";
+            }
+          }
+          if (a) {
+            var u = a.split(/(?:\r\n|\r|\n)/)[t - 1];
+            if (u) {
+              return (
+                n + ":" + t + "\n" + u + "\n" + new Array(o).join(" ") + "^"
+              );
+            }
+          }
+        }
+        return null;
+      }
+      function printErrorAndExit(e) {
+        var r = getErrorSource(e);
+        var n = globalProcessStderr();
+        if (n && n._handle && n._handle.setBlocking) {
+          n._handle.setBlocking(true);
+        }
+        if (r) {
+          console.error();
+          console.error(r);
+        }
+        console.error(e.stack);
+        globalProcessExit(1);
+      }
+      function shimEmitUncaughtException() {
+        var e = process.emit;
+        process.emit = function (r) {
+          if (r === "uncaughtException") {
+            var n = arguments[1] && arguments[1].stack;
+            var t = this.listeners(r).length > 0;
+            if (n && !t) {
+              return printErrorAndExit(arguments[1]);
+            }
+          }
+          return e.apply(this, arguments);
+        };
+      }
+      var S = h.slice(0);
+      var _ = d.slice(0);
+      r.wrapCallSite = wrapCallSite;
+      r.getErrorSource = getErrorSource;
+      r.mapSourcePosition = mapSourcePosition;
+      r.retrieveSourceMap = v;
+      r.install = function (r) {
+        r = r || {};
+        if (r.environment) {
+          c = r.environment;
+          if (["node", "browser", "auto"].indexOf(c) === -1) {
+            throw new Error(
+              "environment " +
+                c +
+                " was unknown. Available options are {auto, browser, node}"
+            );
+          }
+        }
+        if (r.retrieveFile) {
+          if (r.overrideRetrieveFile) {
+            h.length = 0;
+          }
+          h.unshift(r.retrieveFile);
+        }
+        if (r.retrieveSourceMap) {
+          if (r.overrideRetrieveSourceMap) {
+            d.length = 0;
+          }
+          d.unshift(r.retrieveSourceMap);
+        }
+        if (r.hookRequire && !isInBrowser()) {
+          var n = dynamicRequire(e, "module");
+          var t = n.prototype._compile;
+          if (!t.__sourceMapSupport) {
+            n.prototype._compile = function (e, r) {
+              p[r] = e;
+              f[r] = undefined;
+              return t.call(this, e, r);
+            };
+            n.prototype._compile.__sourceMapSupport = true;
+          }
+        }
+        if (!l) {
+          l =
+            "emptyCacheBetweenOperations" in r
+              ? r.emptyCacheBetweenOperations
+              : false;
+        }
+        if (!u) {
+          u = true;
+          Error.prepareStackTrace = prepareStackTrace;
+        }
+        if (!s) {
+          var o =
+            "handleUncaughtExceptions" in r ? r.handleUncaughtExceptions : true;
+          try {
+            var i = dynamicRequire(e, "worker_threads");
+            if (i.isMainThread === false) {
+              o = false;
+            }
+          } catch (e) {}
+          if (o && hasGlobalProcessEventEmitter()) {
+            s = true;
+            shimEmitUncaughtException();
+          }
+        }
+      };
+      r.resetRetrieveHandlers = function () {
+        h.length = 0;
+        d.length = 0;
+        h = S.slice(0);
+        d = _.slice(0);
+        v = handlerExec(d);
+        m = handlerExec(h);
+      };
+    },
+    147: (e) => {
+      "use strict";
+      e.exports = require("fs");
+    },
+    17: (e) => {
+      "use strict";
+      e.exports = require("path");
+    },
+  };
+  var r = {};
+  function __webpack_require__(n) {
+    var t = r[n];
+    if (t !== undefined) {
+      return t.exports;
+    }
+    var o = (r[n] = { id: n, loaded: false, exports: {} });
+    var i = true;
+    try {
+      e[n](o, o.exports, __webpack_require__);
+      i = false;
+    } finally {
+      if (i) delete r[n];
+    }
+    o.loaded = true;
+    return o.exports;
+  }
+  (() => {
+    __webpack_require__.nmd = (e) => {
+      e.paths = [];
+      if (!e.children) e.children = [];
+      return e;
+    };
+  })();
+  if (typeof __webpack_require__ !== "undefined")
+    __webpack_require__.ab = __dirname + "/";
+  var n = {};
+  (() => {
+    __webpack_require__(284).install();
+  })();
+  module.exports = n;
+})();
diff --git a/renovate.json b/renovate.json
index 81c9d06..4b956e1 100644
--- a/renovate.json
+++ b/renovate.json
@@ -1,6 +1,4 @@
 {
-    "$schema": "https://docs.renovatebot.com/renovate-schema.json",
-    "extends": [
-      "local>cds-snc/renovate-config"
-    ]
-  }
\ No newline at end of file
+  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+  "extends": ["local>cds-snc/renovate-config"]
+}
diff --git a/src/main.ts b/src/main.ts
index 4c42de3..0ea8881 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -16,12 +16,12 @@ const OPENAI_BASE_URL: string = core.getInput("OPENAI_BASE_URL"); // Keep the de
 const debugHttp: string | undefined = process.env.DEBUG_HTTP;
 if (debugHttp) {
   // Intercept all HTTP requests
-  const nock = require('nock');
+  const nock = require("nock");
   nock.recorder.rec({
     output_objects: true,
     logging: (content: any) => {
-      console.log('HTTP Request:', content);
-    }
+      console.log("HTTP Request:", content);
+    },
   });
   console.log("HTTP calls interception enabled");
 }
@@ -107,8 +107,9 @@ function createPrompt(file: File, chunk: Chunk, prDetails: PRDetails): string {
 - Use the given description only for the overall context and only comment the code.
 - IMPORTANT: NEVER suggest adding comments to the code.
 
-Review the following code diff in the file "${file.to
-    }" and take the pull request title and description into account when writing the response.
+Review the following code diff in the file "${
+    file.to
+  }" and take the pull request title and description into account when writing the response.
   
 Pull request title: ${prDetails.title}
 Pull request description:
@@ -122,9 +123,9 @@ Git diff to review:
 \`\`\`diff
 ${chunk.content}
 ${chunk.changes
-      // @ts-expect-error - ln and ln2 exists where needed
-      .map((c) => `${c.ln ? c.ln : c.ln2} ${c.content}`)
-      .join("\n")}
+  // @ts-expect-error - ln and ln2 exists where needed
+  .map((c) => `${c.ln ? c.ln : c.ln2} ${c.content}`)
+  .join("\n")}
 \`\`\`
 `;
 }
@@ -146,7 +147,8 @@ async function getAIResponse(prompt: string): Promise